简介
这篇文章是给那些习惯于用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++难用?
jan.14 2001
