msdn中提供mfc的連線資料庫的方法大約有三種方法
一是cdatabase類(odbc),一是dao,另一是
ole db,msdn上推薦的方法是odbc或者ole db方式。
ole db是一組」元件物件模型」(com) 介面,是新的資料庫低層介面,它封裝了odbc的功能,並以統一的方式訪問儲存在不同資訊源中的資料。ole db是microsoft uda(universal data access)策略的技術基礎。ole db 為任何資料來源提供了高效能的訪問,這些資料來源包括關係和非關聯式資料庫、電子郵件和檔案系統、文字和圖形、自定義業務物件等等。也就是說,ole db 並不侷限於 isam、jet 甚至關係資料來源,它能夠處理任何型別的資料,而不考慮它們的格式和儲存方法。在實際應用中,這種多樣性意味著可以訪問駐留在 excel 電子資料表、文字檔案、電子郵件/目錄服務甚至郵件伺服器,諸如 microsoft exchange 中的資料。但是,ole db 應用程式程式設計介面的目的是為各種應用程式提供最佳的功能,它並不符合簡單化的要求。您需要的api 應該是一座連線應用程式和ole db 的橋梁,這就是 activex data objects (ado)。
使用ado前必須在工程的stdafx.h標頭檔案裡用直接引入符號#import引入ado庫檔案,以使編譯器能正確編譯。
ado庫是一組com動態庫,這意味應用程式在呼叫ado前,必須初始化ole/com庫環境。在mfc應用程式裡,乙個比較好的方法是在應用程式主類的initinstance成員函式裡初始化ole/com庫環境。
然後ado庫包含三個基本介面:_connectionptr介面、_commandptr介面和_recordsetptr介面
下面是程式設計步驟:
1、在stdafx.h加入:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename
("eof"
,"adoeof")
2、初始化ole/com庫,這個在應用程式類的initinstance函式裡面新增即可
if
(!afxoleinit())
我在網上看到還需要新增如下**初始化com庫
coinitialize(
null
);//
coinitializeex(null);
但是我並沒有新增,卻連線資料庫成功,可能是和上面的初始化有相同的功能,或者afxoleinit初始化時候呼叫了coinitializeex,不過如果在多執行緒下貌似需要在每個執行緒呼叫coinitializeex,等我後面用到了,在更新文章
3、我只介紹我用到的介面,上面是初始化系統環境,下面宣告乙個介面
_connectionptr pconn;
4、開啟鏈結
const _bstr_t strsrc=
"driver=;provider=sqloledb;data source=svctag-d76xz2x;database=bridge;uid=test;pwd=test;";if
(failed(pconn.createinstance(
"adodb.connection"))
)try
catch
(_com_error &e)
5、到此與資料庫的連線順利建立,下面就是執行sql語句,獲取結果了
int cbridgesql:
:execsql(cstring sql)
catch
(_com_error &e)
return 0;
}
int cbridgesql:
:execsql(cstring sql,_recordsetptr &prst)
catch
(_com_error &e)
return 0;
}
呼叫**如下
_recordsetptr prst(__uuidof(recordset));
sql_cmd.format(
"select * from bridge");
execsql(sql_cmd,prst)
;while
(!prst-
>adoeof)
其餘兩個介面有空再整理一下,上面問題,我會驗證,待續
MFC中用Ado連線資料庫
vc 中使用mfc通過ado連線資料庫方法小結 不包括異常的捕捉 這裡主要講mfc與sql2000資料庫的連線。coinitialize null 表示com庫的初始化 couninitialize 釋放com庫。3.獲取連線字串。最簡單的方法就是新建乙個.txt檔案,將其字尾名改為.udl,雙擊它...
MFC中用ADO連線資料庫
一 ado簡介 ado activex data object 是microsoft資料庫應用程式開發的新介面,是建立在ole db之上的高層資料庫訪問技術,請不必為此擔心,即使你對ole db,com不了解也能輕鬆對付ado,因為它非常簡單易用,甚至比你以往所接觸的odbc api dao rdo...
VC 中使用MFC通過ADO連線資料庫
vc 中使用mfc通過ado連線資料庫方法小結 不包括異常的捕捉 這裡主要講mfc與access資料庫 sql2000方法差不多,主要是連線字串不同 1 在stdafx h標頭檔案中加入此句子 import c program files common files system ado msado1...