ado三種介面:_connectionptr、_
commandptr、_recordsetptr
_connectionptr:返回乙個記錄集或乙個空指標,通常用來常見乙個資料庫連線或者執行一條不返回任何結構的sql語句。最好不要用於返回乙個記錄集。常用的方法是open()和execute()。
_commandptr:返回乙個記錄集。該指標提供了一種 簡單的方法來執行返回記錄集的儲存過程和sql 語句。常用方法execute()。
_recordsetptr:乙個記錄集。常用方法open()。
1、_connectionptr open()方法和execute()方法
(1)open()方法
函式原型:open(_bstr_
t connectionstring,_bstr_
t userid,_bstr_
t password,long options)
引數說明:connectionstring為連線字串,userid是使用者名稱,password是登陸密碼
options是連線選項,可以是如下幾個常量:
1> admodeunknown 預設,當前的許可權未設定
2> admoderead 唯讀
3> admodewrite 只寫
4> admodereadwrite 可以讀寫
5> admodesharedenyread 阻止其它connection物件以讀許可權開啟連線
6> admodesharedenywrite 阻止其它connection物件以寫許可權開啟連線
7> admodeshareexclusive 阻止其它connection物件開啟連線
8> admodesharedenynone 阻止其它程式或物件以任何許可權建立連線
(2)execute()方法
函式原型:_recordsetptr connection::execute(_
bstr_t commandtext,variant* recordsaffected,long options)
引數說明:commandtext是命令字串,通常是sql命令,recordsaffected是操作完成後所影響的行數, options表示commandtext中內容的型別,可以取下列值之一:
1> adcmdtext 表明commandtext是文字命令
2>adcmdtable 表明commandtext是乙個表名
3>adcmdproc 表明commandtext是乙個儲存過程
4>adcmdunknown 未知
返回值:指向記錄集的指標(_resultsetptr型別)
2、_commandptr execute()方法
用法:_commandptr m_
pcommand;
m_pcommand.createinstance("adodb.command");
_variant_
t vnull;
vnull.vt = vt_error;
vnull.scode = disp_e_
paramnotfound;///定義為無引數
m_pcommand->activeconnection = m_
pconnection;///非常關鍵的一句,將建立的連線賦值給它
m_pcommand->commandtext = "select * from users";///命令字串
m_precordset = m_
pcommand->execute(&vnull,&vnull,adcmdtext);///執行命令,取得記錄集
3、_recordsetptr open()方法
函式原型:hresult recordset::open(const _variant_
t& source,const _variant_
t& activeconnection,enum cursortypeenum cursortype,enum locktypeenum locktype,long options)
引數說明:source是資料查詢字串;
activeconnection是已經建立好的連線(我們需要用connection物件指標來構造乙個_variant_
t物件);
cursortype 游標型別,它是列舉cursortypeenum中的乙個值;
locktype 鎖定型別 它是列舉locktypeenum中的乙個值;
options 指定source的型別;
返回值:乙個記錄集。
注:在使用這三種指標之前要進行兩個初始化,即com初始化和初始化例項
hresult comhr = ::coinitialize(null);
hresult hr = m_connection_
ptr.createinstance(__uuidof(connection));
hresult hr = m_command_
ptr.createinstance(__uuidof(command));
hresult hr = m_recordset_
ptr.createinstance(__uuidof(recordset));
ADO方式運算元據庫
ado連線sql server的方式已經在前文mfc使用ado連線sql server 中進行過描述,接下來主要講講如何運算元據庫。recordsetptr智慧型指標,它是專門為通過記錄集運算元據庫而設立的指標,通過該介面可以對資料庫的表內的記錄 欄位等進行各種操作。通過 recordsetptr例...
DLL中新增ADO元件運算元據庫
import c program files common files system ado msado26.tlb no namespace rename eof adoeof pragma warning disable 4146 import c program files common fi...
VC中使用ADO運算元據庫的方法
1 引入ado類 import c program files common files system ado msado15.dll no namespace rename eof adoeof 2 初始化com 在mfc中可以用afxoleinit 非mfc環境中用 coinitialize n...