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;
...全文
179 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
按楼上说的,我改了,可还是出错,同一个错误!
回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2454

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2006-03-31 09:52
社区公告
暂无公告