我想在一个Atl的DLL项目中添加ADO的引用 可是死活不成功 郁闷

progame 2003-06-01 11:35:20
在stdafx.h文件我添加了


#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","ADOEOF")


使用:
__interface IDBOperator : IDispatch
{
[id(1), helpstring("Execute sql string")] HRESULT ExecuteString([in] BSTR sql, [in] VARIANT aParam, [out,retval] _Recordset **prstOutput);
};

错误:

c:\documents and settings\administrator\my documents\visual studio projects\cdboperatorlib\cdboperatorlib\dboperator.h(20): error MIDL2011 : unresolved type declaration : _Recordset [ Parameter 'prstOutput' of Procedure 'ExecuteString' ( Interface 'IDBOperator' ) ]
...全文
62 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huabh 2003-06-05
  • 打赏
  • 举报
回复
可以先用ole db接口,把数据放入ole db的行集,在把ole db的行集转化位一个ado的记录集recordset.具体的方法是通过ado记录集对象的IADORecordsetConstruction接口,这个接口提供方法put_Rowset,它将一个ole db的行集放入ado记录集对象并接将行集转化位记录集。
例子:
RecordsetPtr rsTemp(__uuidof(Recordset));
ADORecordsetConstructionPtr pRSConstruct;
rsTemp->put_CursorLocation(adUserClient);
pRSConstruct = rsTemp;
hr = pRSConstruct->putRowset(cmd.m_spRowset);
*rs =(IDispatch *)pRSConstruct->Detach();
Seesion.Close();

OK!!!!
sunyuan_01 2003-06-05
  • 打赏
  • 举报
回复
gz
progame 2003-06-03
  • 打赏
  • 举报
回复
up
zhp80 2003-06-03
  • 打赏
  • 举报
回复
我也在找
如何让一个RawSet支持Recordset接口
不知那位知道?
当然,不是自己去实现Recordset接口
huabh 2003-06-02
  • 打赏
  • 举报
回复
你及让已经选用atl技术,其实可以在atl项目中不必应用ado,直接采用ole db的provider,效率比用ado要高,而且,atl中直接可以插入ole db的项目。
zhp80 2003-06-02
  • 打赏
  • 举报
回复
1.写入
[ importlib("c:\\program files\\common files\\system\\ado\\msado15.dll") ];
建议在 [ module(.....)] 之后
2.在接口定义中
[
object,
library_block, //必须
.....
]
__interface IDBOperator : IDispatch
{
[id(1), helpstring("Execute sql string")] HRESULT ExecuteString([in] BSTR sql, [in] VARIANT aParam, [out,retval] _Recordset **prstOutput);
};
progame 2003-06-02
  • 打赏
  • 举报
回复
up
progame 2003-06-02
  • 打赏
  • 举报
回复
ole db ?

我的其它中间层和客户端是VB写的啊

我通过什么来传递结果集?

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧