用ADO操作DBF数据库的一个奇怪问题(报“一未知错误”)

naile 2002-04-27 11:01:20
今天我用VC写了一个ADO的程序,碰上一个问题,实在找不出原因,望各位大虾指点:
在一个线程中,我不断接受数据,然后判断DBF数据库中是否有该数据,如无,加入库中,如有,更新原数据.但每当用MyDB->Execute()语句执行INSERT语句时,一切正常,而当执行UPDATE语句时报“一未知错误”(SQL语句都正确,但增加和跟新的纪录都有20多项),部分代码如下
_ConnectionPtr MyDB;
MyDB.CreateInstance(__uuidof(Connection));
try
{
MyDB->Open(...);
}
catch(_com_error e)
{
return 0;
}
while(IsRun)
{
//接受数据
_RecordsetPtr Prs;
Prs.CreateInstance(__uuidof(Recordset));
CString strSQL=_T("SELECT * FROM ...WHERE..");//一条条件查询语句
Prs->Open((_bstr_t)strSQL,MyDB.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText); 

if(Prs->adoEOF() && Prs->BOF())
{
strSQL="INSERT INTO....." //INSERT的SQL语句
}
else
{
strSQL="UPDATE ... WHERE ..."//UPDATE的SQL语句
}
Prs->Close();

try
{
_variant_t vRows;
MyDB->Execute((_bstr_t)strSQL,&vRows,adCmdText)
}
catch(_com_error e)
{
::MessageBox(hWnd,e.ErrorMessage(),"ERROR",MB_OK);
//当strSQL为UPDATE语句时,出错,报“一未知错误”
//strSQL为INSERT语句时,正常
continue;
}
}
Prs->Close();
...全文
45 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nizvoo 2002-04-28
  • 打赏
  • 举报
回复
如果那个地方也不行,看看是不是有啥冲态之类
Nizvoo 2002-04-28
  • 打赏
  • 举报
回复
把那个sql语句原封不同的拿到控制台试试。
DBF,不太清楚。
不知道vf里头可不可以???

个人愚见
naile 2002-04-28
  • 打赏
  • 举报
回复
to zheng017(风中王子):
与以前一样
ZHENG017 2002-04-28
  • 打赏
  • 举报
回复
改成用CommandPtr试试.
naile 2002-04-28
  • 打赏
  • 举报
回复
upupup
naile 2002-04-28
  • 打赏
  • 举报
回复
upupup
naile 2002-04-28
  • 打赏
  • 举报
回复
但是同样的数据INSERT为什么正常,现在我将UPDATE语句换成一条横简单的UPDATE语句,只更新一个数据,数据也肯定合法,但执行时还是同样问题。
knightsj 2002-04-28
  • 打赏
  • 举报
回复
代码没什么问题,可能是数据的问题.(这是经常能遇到的,一步步调试应该能找到原因的说~~)
olympicsir 2002-04-28
  • 打赏
  • 举报
回复
UPDATE输入的数据不合法(如过长等)
naile 2002-04-28
  • 打赏
  • 举报
回复
upupup
naile 2002-04-28
  • 打赏
  • 举报
回复
有人回答吗

4,018

社区成员

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

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