以下的文章主要介紹的是如何用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。
示例代碼如下:
- #include<stdio.h> //forprintf
- #include<SQLAPI.h>//mainSQLAPI++header
- intmain(intargc,char*argv[])
- {
- SAConnectioncon;
連接MySQL數據對象
- SACommandcmd(
- &con,
- "Selectfid,fvarchar20fromtest_tbl");
命令對象,其中包含了一個查詢語句,//你在測試的時候可以根據需要修改它。
- try
- {
連接數據庫
在這個例程中連接的是Oracle(大型網站數據庫平台)數據庫,
當然它也可以連接Sybase,Informix,DB2
- //SQLServer,InterBase,SQLBaseandODBC
- con.Connect("test","tester","tester",SA_Oracle(大型網站數據庫平台)_Client);
執行查詢語句
- cmd.Execute();
顯示查詢後的結果
- while(cmd.FetchNext())
- {
- printf("Rowfetched:fid=%ld,fvarchar20='%s' ",
- cmd.Field("fid").asLong(),
- (constchar*)cmd.Field("fvarchar20").asString());
- }
提交當前事務
- con.Commit();
- printf("Rowsselected! ");
- }
- catch(SAException&x)
- {
異常處理
- try
- {
退出當前事務
- con.Rollback();
- }
- catch(SAException&)
- {
- }
顯示錯誤信息
- printf("%s ",(constchar*)x.ErrText());
- }
- return0;
- }
SQLAPI++的官方網站是www.sqlapi.com,它提供評估版本給客戶測試。可惜評估版本的庫文件在連接MySQL數據庫成功後,會彈出一個MessageBox對話框。我在測試它的時候覺得很煩,便把它破解掉了,如果需要可以到我的個人網站去下載它www.szsmart.net,不過只提供BCB的破解版本。