ADOQuery_Book :Dataset not in edit or insert mode.这是什么原因?

hhgf 2006-03-31 09:52:12
我要增加一条图书记录,但老出现
ADOQuery:Dataset not in edit or insert mode的错误,大家帮忙啊!
with ADOQuery_Book do
begin
Append;
DBEdit_BookID.SetFocus;
DBEdit_BookID.Text:= IntToStr(PublicFunction_Form.GetFitNum('BookID',
'Select BookID from Lab_Book_Manage where BookID<>-1 Order By BookID ASC'));
DBEdit_BookName.SetFocus;
FieldByName('BookStatus').AsString:='未借';
Post;
end;
...全文
243 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangpei2008 2006-04-04
  • 打赏
  • 举报
回复
在进行插入之前首先判断一下结果集的状态,如果不是插入状态的话,将其改为insert状态既可。
if not (datasource1.state in [dsinsert])
adoquery_book.insert;
Rubi 2006-04-01
  • 打赏
  • 举报
回复
你把'BookID','Select BookID from Lab_Book_Manage where BookID<>-1 Order By BookID ASC'));
单独用个adoQuery_book.sql.text来存,
adoquery_book.close;
adoquery_book.sql.clear;
adoquery_book.sql.text :=''Select BookID from Lab_Book_Manage where BookID<>-1 Order By BookID ASC';
adoQuery_book.open;
...继续下面的给FieldByName('BookID')赋值
huangheng1983 2006-04-01
  • 打赏
  • 举报
回复
还是不行哦!
elite01 2006-04-01
  • 打赏
  • 举报
回复
Append前加个Open试下
,SetFocus也别调了,没啥用吧
DURON800 2006-04-01
  • 打赏
  • 举报
回复
如果不是记录集的问题,请改成以下格式试试:
with ADOQuery_Book do
begin
Append;
FieldByName('BookID'").AsString:= IntToStr(PublicFunction_Form.GetFitNum('BookID','Select BookID from Lab_Book_Manage where BookID<>-1 Order By BookID ASC'));
FieldByName('BookStatus').AsString:='未借';
Post;
end;
DURON800 2006-04-01
  • 打赏
  • 举报
回复
我不明白你的两个SetFocus是做什么用的?
应该不需要吧。直接用对象名.AsString就可以了吧。另外,你的ID数据类新应该是uniqueidentifier吧?
DURON800 2006-04-01
  • 打赏
  • 举报
回复
一般原因有两个:
一、记录集未打开;
二、记录集的锁定类型是只读;
huangheng1983 2006-04-01
  • 打赏
  • 举报
回复
ADOQuery:Dataset not in edit or insert mode这类错误一般是哪些地方出错了?
huangheng1983 2006-04-01
  • 打赏
  • 举报
回复
按楼上说的,我改了,可还是出错,同一个错误!

2,507

社区成员

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

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