MFC通過ADO連線資料庫

2021-06-19 01:20:34 字數 2269 閱讀 8194

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...