一、ado簡介
ado(activex data object)是microsoft資料庫應用程式開發的新介面,是建立在ole db之上的高層資料庫訪問技術,請不必為此擔心,即使你對ole db,com不了解也能輕鬆對付ado,因為它非常簡單易用,甚至比你以往所接觸的odbc api、dao、rdo都要容易使用,並不失靈活性。本文將詳細地介紹在vc下如何使用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連線資料庫
msdn中提供mfc的連線資料庫的方法大約有三種方法 一是cdatabase類 odbc 一是dao,另一是 ole db,msdn上推薦的方法是odbc或者ole db方式。ole db是一組 元件物件模型 com 介面,是新的資料庫低層介面,它封裝了odbc的功能,並以統一的方式訪問儲存在不同資...
ADO連線資料庫
2009 05 02 19 06 1.ado物件連線資料庫 建立乙個mfc對話方塊工程 stdafx.h中新增 import c program files common files system ado msado15.dll no namespace rename eof adoeof rena...