馬平 8765 字 1個月前

ADO

(7 / 8)
⚡ 登入後報錯可獲 3天VIP 免廣告——立即登入

過使用WindowsAPI函數直接初始化ADO對象。為了直接使用ADO和COM對象,需要添加兩個頭文件adoid.h和adoint.h,這兩個頭文件定義了CLSIDs、接口定義和操作ADO類型庫所需要的枚舉類型。此外,還需要增加頭文件INITGUID.H。

為了能夠編譯用COMAPI創建的ADO工程文件,還需要在機器中安裝OLEDBSDK或者是MSDASDK工具。下麵是利用API創建ADO的簡單的示例代碼:

#include

#include

#include“adoid.h”\/\/ADO的GUID's

#include“adoint.h”\/\/ADO的類、枚舉等等

voidmain()

HRESULThr=S_OK;

\/\/ADORecordset是在adoint.h中定義的

ADORecordset*Rs1=NULL;

VARIANTSource;

VARIANTConnect;

VariantInit(&Source);

VariantInit(&Connect);

Source.vt=VT_BSTR;

Source.bstrVal=::SysAllocString(L“SELECT*FROMAuthors”);

Connect.vt=VT_BSTR;

Connect.bstrVal=::SysAllocString(L“DSN=AdoDemo;UID=sa;PWD=;”);

hr=CoCreateInstance(CLSID_CADORecordset,

NULL,

CLSCTX_INPROC_SERVER,

IID_IADORecordset,

(LPVOID*)&Rs1);

if(SUCCEEDED(hr))hr=Rs1->Open

(Source,

Connect,

adOpenForwardOnly,

adLockReadOnly,

-1);

\/\/對記錄集Rs1進行處理

if(SUCCEEDED(hr))hr=Rs1->Close();

if(SUCCEEDED(hr)){Rs1->Release();Rs1=NULL;}

if(SUCCEEDED(hr))::MessageBox(NULL,“Success!”,“”,MB_OK);

C++Extensions

如果用C++進行ADO應用程序開發,應該使用ADOC++Extensions。我們知道,用VB或者VBScript來操作ADO是非常方便的,但是如果使用C++或者是Java,就必須要處理類似Variants這樣的數據結構以實現和C++數據結構的轉換,而這種處理無疑是所有C++開發人員都很頭疼的事情。但如果使用C++Extensions的話,ADO就不需要從數據提供者處得到列信息,而是在設計時刻使用開發人員提供的列信息。以下是一個簡單的示例:

\/\/創建和具體記錄相對應的類

classCAuthor:publicCADORecordBinding

BEGIN_ADO_BINDING(CCustomRs1)

ADO_VARIABLE_LENGTH_ENTRY4(1,

adVarChar,m_szau_id,sizeof(m_szau_id),FALSE)

ADO_VARIABLE_LENGTH_ENTRY4(2,

adVarChar,m_szau_fname,sizeof(m_szau_fname),FALSE)

ADO_VARIABLE_LENGTH_ENTRY4(3,

adVarChar,m_szau_lname,sizeof(m_szau_lname),FALSE)

END_ADO_BINDING()

protected:

charm_szau_id;

charm_szau_fname;

;emanl_uazs_mrahc

;}

𝑤𝑡.𝑝𝑜𝑜問訪請,新更節章新最取獲

)(ataDrohtuAhcteFdiov

;rohtuarohtuAC

象對集錄記/\/\

;sRprtPtesdroceR_

;gnidniBdroceRodAip*gnidniBdroceRODAI

針指口接象對MOC取獲/\/\

;))tesdroceR(fodiuu__(ecnatsnIetaerC.sRp

集錄記的要需到得/\/\

,”;=drowssaP;as=dIresU;sbup=esabataD;1khserus=ecruoSataD;BDELOLQS=redivorP“,”seeyolpmEmorfemanl_ua,emanf_ua,di_uatceles“(nepO>-sRp

,ylnOdrawroFnepOda

,ylnOdaeRkcoLda

;)txeTdmCda

gnidniBdroceRODAI口接詢查/\/\

;)gnidniBdroceRodAip&)*DIOVPL(,)gnidniBdroceRODAI(fodiuu__(ecafretnIyreuQ>-sRp

象對定綁/\/\

;)rohtua&(tesdroceRoTdniB>-gnidniBdroceRodAip

容內關相的中錄記到得/\/\

{)FOE>-sRp==ESLAF_TNAIRAV(elihw

,di_uazs_m.rohtua,”s%s%s%“(ftnirp

emanl_uazs_m.rohtua,emanf_uazs_m.rohtua


✅ 付款功能已修復,現在可以正常購買了 — 支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
😤 廣告總在最入戲的時候跳出來?
月付 $5 USD,升級 VIP 後全站所有頁面廣告立即全關——
不是只有這本書,是整個 oop.tw 每一頁、每一章,從此一路讀到底不被打斷。 $5 USD ≈ 一杯珍奶的錢,換一整個月零廣告清爽閱讀 · 隨時可取消
✅ 全站廣告全關 ✅ 工口專區全本解鎖 ✅ 月卡 $5 USD · 季卡 $13 USD · 年卡 $45 USD
⭐ 登入 / 免費註冊後升級
加我 LINE 好友,分享好書不錯過
第一時間獲得新書推薦、書單更新通知
立即加入
上一頁 書頁/目錄
/ 8 頁
下一頁
為本書評分(每位讀者可評一次,提交後無法修改)
發表評論
以 匿名讀者 身份發表
讀者評論