用C++庫連接Oracle, MS SQL, MySQL等數(shù)據(jù)庫
最近在網(wǎng)上找到一個好東西SQLAPI++,它是可以訪問多個SQL數(shù)據(jù)庫(Oracle, SQL Server, DB2, Sybase, Informix, InterBase, SQLBase, MySQL, PostgreSQL)C++庫。SQLAPI++直接調(diào)用本地目標(biāo)數(shù)據(jù)庫管理系統(tǒng)(DBMS)的API(不像ADO一樣使用OLEDB and/or ODBC 中間層)。SQLAPI++庫扮演了一個中間件以間接方便訪問數(shù)據(jù)庫的角色,這就是為什么SQLAPI++是訪問數(shù)據(jù)庫最快的方法。在開發(fā)和發(fā)布您的應(yīng)用程序時不再需要安裝和配置OLEDB and/or ODBC的驅(qū)動。SQLAPI支持的開發(fā)平臺有Microsoft Visual C++,Borland C++ Builder,Gun Project C and C++ Compiler。
示例代碼如下:
#include <stdio.h> // for printf
#include <SQLAPI.h> // main SQLAPI++ header
int main(int argc, char* argv[])
{
SAConnection con; // 連接數(shù)據(jù)對象
SACommand cmd(
&con,
"Select fid, fvarchar20 from test_tbl"); // 命令對象,其中包含了一個查詢語句,//你在測試的時候可以根據(jù)需要修改它。
// 本文轉(zhuǎn)自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=1020&d=ssoqrd
try
{
// 連接數(shù)據(jù)庫
// 在這個例程中連接的是Oracle數(shù)據(jù)庫,
// 當(dāng)然它也可以連接 Sybase, Informix, DB2
// SQLServer, InterBase, SQLBase and ODBC
con.Connect("test", "tester", "tester", SA_Oracle_Client);
// 執(zhí)行查詢語句
cmd.Execute();
// 顯示查詢后的結(jié)果
while(cmd.FetchNext())
{
printf("Row fetched: fid = %ld, fvarchar20 = '%s'\n",
cmd.Field("fid").asLong(),
(const char*)cmd.Field("fvarchar20").asString());
}
// 提交當(dāng)前事務(wù)
con.Commit();
printf("Rows selected!\n");
}
catch(SAException &x)
{
// 異常處理
try
{
// 退出當(dāng)前事務(wù)
con.Rollback();
}
catch(SAException &)
{
}
// 顯示錯誤信息
printf("%s\n", (const char*)x.ErrText());
}
return 0;
}
SQLAPI++的官方網(wǎng)站是www.sqlapi.com,它提供評估版本給客戶測試。可惜評估版本的庫文件在連接數(shù)據(jù)庫成功后,會彈出一個MessageBox對話框.
posted on 2008-01-02 09:16 lovetiffany 閱讀(1777) 評論(3) 編輯 收藏 引用

