ADO方式運算元據庫

2021-07-08 21:56:12 字數 1935 閱讀 5407

ado連線sql server的方式已經在前文mfc使用ado連線sql server 中進行過描述,接下來主要講講如何運算元據庫。

_recordsetptr智慧型指標,它是專門為通過記錄集運算元據庫而設立的指標,通過該介面可以對資料庫的表內的記錄、欄位等進行各種操作。

通過_recordsetptr例項化乙個物件,m_precordset相當於資料庫內容的備份,我們操作m_precordset中的內容,然後update就能改變資料庫中的內容。

_recordsetptr m_precordset;

m_precordset.createinstance(__uuidof(recorset));

開啟記錄集的方法:使用open函式
hresult recordset15::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的型別

游標型別cursortype,可取如下值之一:

adopenunspecified=-1 不作特別指定

adopenforwardonly=0 預設值,前滾靜態游標。這種游標只能向前瀏覽記錄集,比如用movenext向前滾動,這種方式可節省資源,提高瀏覽速度,但諸如bookmark、 recordcount、absoluteposition、absolutepage都不能使用。

adopenkeyset=1 鍵集游標,採用這種游標的記錄集看不到其它使用者的新增、刪除操作,但對於更新原有記錄的操作對你是可見的。

adopendynamic=2 動態游標,所有資料庫的操作都會立即在使用者記錄集上反應出來。

adopenstatic=3 靜態游標。它為記錄產生乙個靜態備份,其他使用者的新增、刪除、更新操作對你的記錄集來說是不可見的。

locktype鎖定型別,它可以是以下值之一,請看如下列舉結構

enum locktypeenum

關於游標和鎖定型別,對於一般使用者,建議您只作簡單了解,後面將進一步進行解說。

options可以取如下值之一:

adcmdtext: 表明commandtext是文字命令。

adcmdtable:表明commandtext是乙個表名。

adcmdproc:表明commandtext是乙個儲存過程。

adcmdunknown:未知。

*/

source中寫sql語句,實現對操作,如查詢

glsql.m_precordset.createinstance("adodb.recordset"); 

glsql.m_precordset->open("select * from goodsinfo" , _variant_t((idispatch*)glsql.m_pconnection,true),adopenstatic,adlockoptimistic,adcmdtext);

操作完成後要記得釋放指標
glsql.m_precordset->close();

glsql.m_precordset=null;

本文參考了[夜雨闌珊](的部落格

ADO介面運算元據庫

ado三種介面 connectionptr commandptr recordsetptr connectionptr 返回乙個記錄集或乙個空指標,通常用來常見乙個資料庫連線或者執行一條不返回任何結構的sql語句。最好不要用於返回乙個記錄集。常用的方法是open 和execute commandpt...

JDBC方式運算元據庫

1.讀取配置檔案,我將配置資訊寫入配置檔案 properties 中,方便後期資料庫變更後或者其他專案使用,擴充套件性好些,盡量避免硬編碼.driver oracle.jdbc.driver.oracledriver url jdbc oracle thin 127.0.0.1 1521 orcl ...

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