delphi 中出现dataset not in edit or insert mode的问题

Posted jijm123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 中出现dataset not in edit or insert mode的问题相关的知识,希望对你有一定的参考价值。

self.ADOQuery2.Edit;
self.ADOQuery2.First;
while not self.ADOQuery2.Eof do
begin
self.ADOQuery2.FieldByName(‘单价‘).Value:=roundto(self.ADOQuery2.FieldByName(‘单价‘).Value,-2);
self.ADOQuery2.Next;
end;
self.ADOQuery2.Post;
这是显示在一个DBGrid里面
我是想把单价保留2位小数,
但是老出现这个问题,显示出错的self.ADOQuery2.Next句
我在网上也找了,都说是没进入edit状态,
但是我明明有edit,问题出在哪里,请帮帮忙
当你使用First或Next时ADOQuery2会自动Post,ADOQuery2处于dsBrowse状态(数据集已打开,可以浏览数据,但是不能进行修改)
所以你必须在赋值语句前使用Edit,我帮你修改程序如下:

self.ADOQuery2.First;
while not self.ADOQuery2.Eof do
begin
self.ADOQuery2.Edit;
self.ADOQuery2.FieldByName(‘单价‘).Value:=roundto(self.ADOQuery2.FieldByName(‘单价‘).Value,-2);
self.ADOQuery2.Post;
self.ADOQuery2.Next;
end;
//self.ADOQuery2.Edit; X
self.ADOQuery2.First;
while not self.ADOQuery2.Eof do
begin
ADOQuery2.Edit; ///
self.ADOQuery2.FieldByName(‘单价‘).Value:=roundto(self.ADOQuery2.FieldByName(‘单价‘).Value,-2);
ADOQuery2.Post; ///
self.ADOQuery2.Next;
end;
//self.ADOQuery2.Post; X

Edit针对当前游标所在行,你next的时候,游标移动了,这个时候会自动POST
 
 

以上是关于delphi 中出现dataset not in edit or insert mode的问题的主要内容,如果未能解决你的问题,请参考以下文章

detectron2报AttributeError: Attribute ‘evaluator_type‘ does not exist in the metadata of dataset(代码片段

delphi中 dataset容易出错的地方

delphi中json转dataset

delphi dataset DisableControls

delphi程序问题:Class TComPort not found. lgnore the error and continue?

Delphi Dataset CurValue