如何在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++難用?