假删除数据的错误。

ninliu 2004-04-29 09:15:46
我的删除代码是这么写的:

if MessageBox(Handle, '确认删除选中的记录?', strCaption, MB_YESNO +
MB_DEFBUTTON2 + MB_ICONQUESTION) = mrYES then
begin
try
with ADODataSet1 do
begin
Edit;
FieldByName('State').AsString := '废码';
Post;
ShowMessage(IntToStr(RecordCount));
end;
finally
end;
end;

不是将数据物理删除,而是加了一个修改了标志字段State。

adodateset的过滤器过滤了所有的废码记录,但是在删除最后一条记录的时候出了问题,我不知道是怎么了

错误信息为:

---------------------------
Debugger Exception Notification
---------------------------
Project PAPSoft2.exe raised exception class EOleException with message 'BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


请高手指教
...全文
41 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhb79 2004-05-06
  • 打赏
  • 举报
回复
你用的是delphi5 吗.delphi5的ADO是有这个错误的,这是一个BUG.用D6或用D5加补丁包就可以解决了.
ninliu 2004-05-06
  • 打赏
  • 举报
回复
最后删除,记录为0。其他机器运行好像没有问题
hewei2003 2004-05-02
  • 打赏
  • 举报
回复
一般出这种错误,最大的原因出在游标超出有效的范围了。

My Email:cqhw2003@126.com
lybdata 2004-05-02
  • 打赏
  • 举报
回复
dbipack
ninliu 2004-05-02
  • 打赏
  • 举报
回复
原先当然有值:是“已归档”
努力的蜘蛛 2004-04-30
  • 打赏
  • 举报
回复
我的拙见:'State'字段原先是否有值,如果有就不能用Edit,应该用Sql语句更新
ninliu 2004-04-29
  • 打赏
  • 举报
回复
根本就没有delete,只是把记录的状态改成‘废码’了。不是物理删除的啊
lijinghe1 2004-04-29
  • 打赏
  • 举报
回复
循环代码有问题,贴出来吧
是不是delete之后又next

2,497

社区成员

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

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