連接MySQL,用C++庫(kù)
以下的文章主要介紹的是如何用C++庫(kù)來(lái)對(duì)連接MySQL,Oracle與MS SQL數(shù)據(jù)庫(kù)的實(shí)際操作步驟,我前幾天在以信譽(yù)度比較好的網(wǎng)上找到一個(gè)關(guān)于SQLAPI++,可以說(shuō)是一大驚喜,它是可以訪(fǎng)問(wèn)多個(gè)SQL數(shù)據(jù)庫(kù)(Oracle(大型網(wǎng)站數(shù)據(jù)庫(kù)平臺(tái))。
SQLServer,DB2,Sybase,Informix,InterBase,SQLBase,MySQL(和PHP搭配之最佳組合),PostgreSQL)C++庫(kù)。SQLAPI++直接調(diào)用本地目標(biāo)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的API(不像ADO一樣使用OLEDBand/orODBC中間層)。
SQLAPI++庫(kù)扮演了一個(gè)中間件以間接方便訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的角色,這就是為什么SQLAPI++是訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)最快的方法。在開(kāi)發(fā)和發(fā)布您的應(yīng)用程序時(shí)不再需要安裝和配置OLEDBand/orODBC的驅(qū)動(dòng)。
SQLAPI支持的開(kāi)發(fā)平臺(tái)有MicrosoftVisualC++,BorlandC++Builder,GunProjectCandC++Compiler。
示例代碼如下:
- #include<stdio.h> //forprintf
- #include<SQLAPI.h>//mainSQLAPI++header
- intmain(intargc,char*argv[])
- {
- SAConnectioncon;
連接MySQL數(shù)據(jù)對(duì)象
- SACommandcmd(
- &con,
- "Selectfid,fvarchar20fromtest_tbl");
命令對(duì)象,其中包含了一個(gè)查詢(xún)語(yǔ)句,//你在測(cè)試的時(shí)候可以根據(jù)需要修改它。
- try
- {
連接數(shù)據(jù)庫(kù)
在這個(gè)例程中連接的是Oracle(大型網(wǎng)站數(shù)據(jù)庫(kù)平臺(tái))數(shù)據(jù)庫(kù),
當(dāng)然它也可以連接Sybase,Informix,DB2
- //SQLServer,InterBase,SQLBaseandODBC
- con.Connect("test","tester","tester",SA_Oracle(大型網(wǎng)站數(shù)據(jù)庫(kù)平臺(tái))_Client);
執(zhí)行查詢(xún)語(yǔ)句
- cmd.Execute();
顯示查詢(xún)后的結(jié)果
- while(cmd.FetchNext())
- {
- printf("Rowfetched:fid=%ld,fvarchar20='%s' ",
- cmd.Field("fid").asLong(),
- (constchar*)cmd.Field("fvarchar20").asString());
- }
提交當(dāng)前事務(wù)
- con.Commit();
- printf("Rowsselected! ");
- }
- catch(SAException&x)
- {
異常處理
- try
- {
退出當(dāng)前事務(wù)
- con.Rollback();
- }
- catch(SAException&)
- {
- }
顯示錯(cuò)誤信息
- printf("%s ",(constchar*)x.ErrText());
- }
- return0;
- }
SQLAPI++的官方網(wǎng)站是www.sqlapi.com,它提供評(píng)估版本給客戶(hù)測(cè)試。可惜評(píng)估版本的庫(kù)文件在連接MySQL數(shù)據(jù)庫(kù)成功后,會(huì)彈出一個(gè)MessageBox對(duì)話(huà)框。我在測(cè)試它的時(shí)候覺(jué)得很煩,便把它破解掉了,如果需要可以到我的個(gè)人網(wǎng)站去下載它www.szsmart.net,不過(guò)只提供BCB的破解版本。
【編輯推薦】