DataSet not in edit or insert Mode是什么错误?

woaiwd 2008-11-04 03:19:21

with AdoTable1 do
begin
Open;
Edit;
First;
FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
Next;
Post;
end;

编译后出现这错误:DataSet not in edit or insert Mode.
怎么解决?
...全文
283 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongqi162 2008-11-04
  • 打赏
  • 举报
回复
你的代码里面并没有体现循环


with AdoTable1 do
begin
Open;
First;
while not eof do
begin
Edit;
FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
Post;
Next;
end;
end;
woaiwd 2008-11-04
  • 打赏
  • 举报
回复
搞定,谢谢大家的帮助,结贴给分。
woaiwd 2008-11-04
  • 打赏
  • 举报
回复
原来是顺序搞错了,hongqi162(失踪的月亮)的代码是正确的。
顺便再问一下你,执行了,但是只计算了一条数据,没有往下计算,代码中也加了Next了,是什么问题?
阿三 2008-11-04
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
AdoConnection1.BeginTrans;
try
with AdoTable1 do
begin
Open;
First;
while not eof do
begin
Edit;
FieldByName('C2').AsString:=FieldByName('C1').AsString+'a';
Next;
end;
end;
AdoConnection1.CommitTrans;
except
AdoConnection1.RollbackTrans;
end;
end;
不过我不喜欢用adotable,基本都用adoquery,用语句来实现
Corn1 2008-11-04
  • 打赏
  • 举报
回复
Post和Next位置换一下
hongqi162 2008-11-04
  • 打赏
  • 举报
回复
with AdoTable1 do
begin
Open;
First;
Edit;
FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
Post;
Next;
end;
panrongzeng 2008-11-04
  • 打赏
  • 举报
回复
with AdoTable1 do
begin
Open;
Edit;
FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
Post;
end;
yangkunjie 2008-11-04
  • 打赏
  • 举报
回复
数据集不在编辑或插入状态
请确认表或数据文件是否只读?
是否有足够的权限编辑和插入数据

2,507

社区成员

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

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