(1)使用導入指令介紹ADO2組件。
示例:
#導入?" C:\ADO\msado15.dll "?no_namespace?重命名(" EOF ",“endo ffile”)(2)定義了CADORecordBinding的派生類,用於程序與數據庫表字段的交互。有關該類的定義,請參見icrsint.h。
示例:
班級?CIntlive?:?公共?CADORecordBinding?
{?
公共:
DBTIMESTAMP?m _ datetime?//定義ADO記錄集字段變量(對應於數據庫表字段)
龍?m _ key
龍?m _ value
龍?m _質量;
詞?m _ stsdatetime?//定義ADO記錄集狀態變量
詞?m _ stskey
詞?m _ stsvalue
詞?m _ stsquality
BEGIN_ADO_BINDING(CIntlive)?//用ADO記錄集字段變量綁定數據庫字段。
ADO _ VARIABLE _ LENGTH _ entry 2(1,adDBTimeStamp,m_datetime,sizeof(m_datetime),m_stsdatetime,true)
ADO_NUMERIC_ENTRY(2,adInteger,m_key,10,0,m_stskey,true)
ADO_NUMERIC_ENTRY(3,adInteger,m_value,10,0,m_stsvalue,true)
ADO_NUMERIC_ENTRY(4,adInteger,m_quality,10,0,m_stsquality,true)
END_ADO_BINDING()
};(3)調用CoInitialize初始化COM::CoInitialize(NULL);
(4)聲明ADO的Connection對象指針和Recordset對象指針並初始化。(類型名在msado15.dll中定義)。
示例:
_ConnectionPtr?pConnection1?=?NULL
_RecordsetPtr?rstADO1?=?NULL(5)定義CADORecordBinding派生類的實例及其綁定接口指針。
示例:
CIntlive?m _ intdata?
IADORecordBinding?*rstADOBind1?=?NULL(6)生成連接對象實例和記錄集對象實例。
示例:
pConnection1。create instance(_ uuidof(Connection));?
rstADO1。create instance(_ _ uuidof(Recordset))?;(7)連接到數據庫並打開記錄集對象。關於open函數參數的用法,請參見微軟MSDN中ADO對應對象參數的基本描述。
示例:
p connection 1->;Open("driver={SQL?服務器};server = serverauid = sapwd =;database=pubs ","","",NULL);
rstado 1->;Open("data ",_variant_t((IDispatch?*)pConnection1,true),?
adOpenKeyset,adLockBatchOptimistic,?ADC mdtable);(8)將CADORecordBinding的派生類的實例綁定到記錄集對象的綁定接口。
示例:
rstadobind 1->;BindToRecordset。m _ int data);(9)操作記錄集對象實例。操作方法請參考微軟MSDN中ADO記錄集對象對應方法的基本描述。
示例:
rstado 1->;搬家?next();?//將光標移動到下壹條記錄
rstado 1->;更新(_variant_t("quality "),_ variant _ t(" 3 "));?//修改記錄的質量字段的值為3。
rstado 1->;更新?batch(adAffectAll));?//會被記錄在案?對set對象的所有更新都壹次性發送到數據庫(10)。關閉記錄集對象並釋放綁定接口。
示例:
rstado 1->;close();?
rstadobind 2-& gt;發布();(11)關閉連接p connection 1-->;close();
(12)調用CoUninitialize釋放COM資源::coun initialize();