adoquery1.sql.text:='select * from goods';
adoquery1.open;
adoquery1.first;
for i:=0 to adoquery1.recordcount-1 do begin
adoquery1.edit;
adoquery1.fieldbyname('type').value=9;
end;
adoquery1.updatebatch;
就是最后一句执行有错,一部分记录的type变了,但一部分没变,何解?事务到哪去了?
还有,在开发环境下运行,到最后一句时经常会出现一个CPU调试窗口,何解?
如果:
adoquery1.sql.text:='update goods set type=9';
adoquery1.execsql;
会不会也会出现改了一部分,而一部分没改?
我用的interbase数据库,经修复,检查出数据有两点损坏,但直接用SQL操作不会出现以上情况。请知者告知
adoquery1.open;
adoquery1.first;
for i:=0 to adoquery1.recordcount-1 do begin
adoquery1.edit;
adoquery1.fieldbyname('type').value=9;
end;
adoquery1.updatebatch;
就是最后一句执行有错,一部分记录的type变了,但一部分没变,何解?事务到哪去了?
还有,在开发环境下运行,到最后一句时经常会出现一个CPU调试窗口,何解?
如果:
adoquery1.sql.text:='update goods set type=9';
adoquery1.execsql;
会不会也会出现改了一部分,而一部分没改?
我用的interbase数据库,经修复,检查出数据有两点损坏,但直接用SQL操作不会出现以上情况。请知者告知
adoquery1.open;
adoquery1.first;
adoquery1.edit;
for i:=0 to adoquery1.recordcount-1 do
begin
adoquery1.fieldbyname('type').value=9;
end;
cursortype属性已经设为ctStatic.
adoquery1.next;
adoquery1.sql.text:='select * from goods';
adoquery1.open;
adoquery1.first;
for i:=0 to adoquery1.recordcount-1 do begin
adoquery1.edit;
adoquery1.fieldbyname('type').value=9;
adoquery1.post;
adoquery1.next
end;
//adoquery1.updatebatch; 不知你用没用绶存模式 ?
with adoquery1 do
begin
Close;
Sql.Clear;
Sql.Add('update...');
end;
adoquery1.parameter['type'].value:=9;
adoQuery1.ExecsSql;
end;