|
如何在VC++ 編寫的組件中使用 ADO
簡(jiǎn)介 這篇文章是給那些習(xí)慣于用VB開發(fā)組件的人想轉(zhuǎn)用VC++時(shí)看的。本文用一個(gè)簡(jiǎn)單的例子示范如何使用ADO Recordset 對(duì)象。 在VB中,當(dāng)你想要返回一個(gè)ADO Recordset,你會(huì)這樣寫… Function GetRecordset() As Object Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection cn.Open "DSN=AdvWorks" Set rs = cn.Execute("Select * From Customers") Set GetRecordset = rs End Function
那么讓我們來(lái)看看用VC++如何實(shí)現(xiàn)呢? 在VB中,你會(huì)使用’Project->References菜單來(lái)使用其它COM組件,例如ADO。在VC++中,要使用#import聲明。在你的.CPP或.H文件中插入這樣一句。 #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ( "EOF", "adoEOF" )
然后加一個(gè)方法。右擊ClassView ,選擇 Add Method。 Method Name: GetRecordset Parameters: [out, retval] IDispatch **RS] 現(xiàn)在是關(guān)鍵… STDMETHODIMP CADOSample::GetRecordset(IDispatch **RS) { _ConnectionPtr pCN; _RecordsetPtr pRS; _variant_t vtEmpty; pCN.CreateInstance(__uuidof(Connection)); pCN->Open("DSN=AdvWorks", "", "", -1); pRS = pCN->Execute("Select * From Customers", &vtEmpty, adCmdUnknown); pRS->QueryInterface(IID_IDispatch, (void**) RS); return S_OK; }
看看,VC++程序幾乎與VB一模一樣,誰(shuí)說(shuō)VC++難用?
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!