ADO介面運算元據庫

2021-07-06 04:11:10 字數 2581 閱讀 3231

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