如何在VC++ 編寫的組件中使用 ADO
簡介 這篇文章是給那些習慣于用VB開發組件的人想轉用VC++時看的。本文用一個簡單的例子示范如何使用ADO Recordset 對象。 在VB中,當你想要返回一個ADO Recordset,你會這樣寫… 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
那么讓我們來看看用VC++如何實現呢? 在VB中,你會使用’Project->References菜單來使用其它COM組件,例如ADO。在VC++中,要使用#import聲明。在你的.CPP或.H文件中插入這樣一句。 #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ( "EOF", "adoEOF" )
然后加一個方法。右擊ClassView ,選擇 Add Method。 Method Name: GetRecordset Parameters: [out, retval] IDispatch **RS] 現在是關鍵… 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一模一樣,誰說VC++難用?
|