>  기사  >  데이터 베이스  >  连接MySQL,用C++库

连接MySQL,用C++库

WBOY
WBOY원래의
2016-06-07 16:11:381184검색

以下的文章主要介绍的是如何用C++库来对连接MySQL,Oracle与MS SQL数据库的实际操作步骤,我前几天在以信誉度比较好的网上找到一个关于SQLAPI++,可以说是一大惊喜,它是可以访问多个SQL数据库(Oracle(大型网站数据库平台)。 SQLServer,DB2,Sybase,Informix

以下的文章主要介绍的是如何用C++库来对连接MySQL,Oracle与MS SQL数据库的实际操作步骤,我前几天在以信誉度比较好的网上找到一个关于SQLAPI++,可以说是一大惊喜,它是可以访问多个SQL数据库(Oracle(大型网站数据库平台)。

SQLServer,DB2,Sybase,Informix,InterBase,SQLBase,MySQL(和PHP搭配之最佳组合),PostgreSQL)C++库。SQLAPI++直接调用本地目标数据库管理系统(DBMS)的API(不像ADO一样使用OLEDBand/orODBC中间层)。

SQLAPI++库扮演了一个中间件以间接方便访问数据库的角色,这就是为什么SQLAPI++是访问数据库最快的方法。在开发和发布您的应用程序时不再需要安装和配置OLEDBand/orODBC的驱动。

SQLAPI支持的开发平台有MicrosoftVisualC++,BorlandC++Builder,GunProjectCandC++Compiler。

示例代码如下:

<ol class="dp-xml">
<li class="alt"><span><span>#include</span><span class="tag"><span class="tag-name">stdio.h</span><span class="tag">></span><span> //forprintf  </span></span></span></li>
<li>
<span>#include</span><span class="tag"><span class="tag-name">SQLAPI.h</span><span class="tag">></span><span>//mainSQLAPI++header  </span></span>
</li>
<li class="alt"><span>intmain(intargc,char*argv[])  </span></li>
<li><span>{  </span></li>
<li class="alt"><span>SAConnectioncon; </span></li>
</ol>

连接MySQL数据对象

<ol class="dp-xml">
<li class="alt"><span><span>SACommandcmd(  </span></span></li>
<li><span>&con,  </span></li>
<li class="alt"><span>"Selectfid,fvarchar20fromtest_tbl");  </span></li>
</ol>

命令对象,其中包含了一个查询语句,//你在测试的时候可以根据需要修改它。

<ol class="dp-xml">
<li class="alt"><span><span>try  </span></span></li>
<li><span>{  </span></li>
</ol>


连接数据库

在这个例程中连接的是Oracle(大型网站数据库平台)数据库,

当然它也可以连接Sybase,Informix,DB2

<ol class="dp-xml">
<li class="alt"><span><span>//SQLServer,InterBase,SQLBaseandODBC  </span></span></li>
<li><span>con.Connect("test","tester","tester",SA_Oracle(大型网站数据库平台)_Client); </span></li>
</ol>


执行查询语句

<ol class="dp-xml"><li class="alt"><span><span>cmd.Execute(); </span></span></li></ol>

显示查询后的结果

<ol class="dp-xml">
<li class="alt"><span><span>while(cmd.FetchNext())  </span></span></li>
<li><span>{  </span></li>
<li class="alt">
<span>printf("</span><span class="attribute">Rowfetched:fid</span><span>=%ld,</span><span class="attribute">fvarchar20</span><span>=</span><span class="attribute-value">'%s'</span><span> ",  </span>
</li>
<li><span>cmd.Field("fid").asLong(),  </span></li>
<li class="alt"><span>(constchar*)cmd.Field("fvarchar20").asString());  </span></li>
<li><span>} </span></li>
</ol>

提交当前事务

<ol class="dp-xml">
<li class="alt"><span><span>con.Commit();  </span></span></li>
<li><span>printf("Rowsselected! ");  </span></li>
<li class="alt"><span>}  </span></li>
<li><span>catch(SAException&x)  </span></li>
<li class="alt"><span>{ </span></li>
</ol>

异常处理

<ol class="dp-xml">
<li class="alt"><span><span>try  </span></span></li>
<li><span>{ </span></li>
</ol>

退出当前事务

<ol class="dp-xml">
<li class="alt"><span><span>con.Rollback();  </span></span></li>
<li><span>}  </span></li>
<li class="alt"><span>catch(SAException&)  </span></li>
<li><span>{  </span></li>
<li class="alt"><span>} </span></li>
</ol>

显示错误信息

<ol class="dp-xml">
<li class="alt"><span><span>printf("%s ",(constchar*)x.ErrText());  </span></span></li>
<li><span>}  </span></li>
<li class="alt"><span>return0;  </span></li>
<li><span>}  </span></li>
</ol>

SQLAPI++的官方网站是www.sqlapi.com,它提供评估版本给客户测试。可惜评估版本的库文件在连接MySQL数据库成功后,会弹出一个MessageBox对话框。我在测试它的时候觉得很烦,便把它破解掉了,如果需要可以到我的个人网站去下载它www.szsmart.net,不过只提供BCB的破解版本。


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.