程序问题,请帮忙解决。

c_word 2003-11-12 04:52:35
以下的程序是抄MSDN上,但是有错误,初学不知道错在哪里,请大家指点,谢了!
#include "stdio.h"
#include "icrsint.h"
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")


_COM_SMARTPR_TYPEDEF(IADORecordBinding,__uuidof(IADORecordBinding));

inline void TESTHR(HRESULT _hr){if FAILED(_hr) _com_issue_error(_hr);}

class CCustomRs:public CADORecordBinding
{
BEGIN_ADO_BINDING(CCustomRs)
ADO_VARIABLE_LENGTH_ENTRY2(2,adVarChar,m_ch_fname,
sizeof(m_ch_fname),m_ul_fnameStatus,false)
ADO_VARIABLE_LENGTH_ENTRY2(4,adVarChar,m_ch_lname,
sizeof(m_ch_lname),m_ul_lnameStatus,false)
END_ADO_BINDING()
public:
CHAR m_ch_fname[22];
CHAR m_ch_lname[32];
ULONG m_ul_fnameStatus;
ULONG m_ul_lnameStatus;
};

void main(void)
{
::CoInitialize(NULL);
try
{
_RecordsetPtr pRs("ADODB>Recordest");
CCustomRs rs;
IADORecordBindingPtr picRs(pRs);

pRs->Open("SELECT *FROM zhenwu","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=zhenwu.mdb",adOpenStatic,adLockOptimistic,adCmdText);
TESTHR(picRs->BindToRecordset(&rs));
while(!pRs->adoEOF)
{
printf("%s, %s\n",(rs.m_ul_fnameStatus==adFldOK?rs.m_ch_fname:"ERROR"),(rs.m_ul_lnameStatus==adFldOK?rs.m_ch_lname:"ERROR"));
pRs->MoveNext;
}
}
catch (_com_error &e)
{
printf("ERROE:\n");
}
::CoUninitialize();
}
...全文
63 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
c_word 2003-11-13
  • 打赏
  • 举报
回复
顶一下~:)
yintongshun 2003-11-12
  • 打赏
  • 举报
回复
赞成carbon107(<软件开发思想.h>) 的,不过我一般写路径时用两个\
zhouqingyuan 2003-11-12
  • 打赏
  • 举报
回复
up
ablefirst 2003-11-12
  • 打赏
  • 举报
回复
同意楼上。
carbon107 2003-11-12
  • 打赏
  • 举报
回复
1.#import "c:\program files\common files\system\ado\msado15.dll" no_namespace
//看看这个路径对不对

2.如果这儿_RecordsetPtr pRs("ADODB>Recordest"); 有错误
//改为_RecordsetPtr pRs("ADODB.Recordest");

xiaohedou 2003-11-12
  • 打赏
  • 举报
回复
学习!
flinming 2003-11-12
  • 打赏
  • 举报
回复
up
Pipi0714 2003-11-12
  • 打赏
  • 举报
回复
_RecordsetPtr pRs("ADODB>Recordest");
改称_RecordsetPtr pRs("ADODB.Recordest");
enoloo 2003-11-12
  • 打赏
  • 举报
回复
是什么错误啊??

我当初也参考过这段代码,他好象有问题的,我改了一些地方.
c_word 2003-11-12
  • 打赏
  • 举报
回复
1.#import "c:\program files\common files\system\ado\msado15.dll" no_namespace
//看看这个路径对不对

2.如果这儿_RecordsetPtr pRs("ADODB>Recordest"); 有错误
//改为_RecordsetPtr pRs("ADODB.Recordest");
1的路径是对的。2是我笔误了。抱歉了~
c_word 2003-11-12
  • 打赏
  • 举报
回复
提示是:
_COM_SMARTPR_TYPEDEF(IADORecordBinding,__uuidof(IADORecordBinding));
IADORecordBindingPtr picRs(pRs);
TESTHR(picRs->BindToRecordset(&rs));
这3句有错误,实在看不出个所以然。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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