程序代码如下:ADODataSet1.LockType:=itBacthOptimistic
....ADODataSet1.First;While Not ADODataSet1.Eof Do
begin
if ADODataSet1[2]=条件 then
更新
ADODataSet1.Next;
end;ADODataSet1.UpdateBatch;执行时,总是出现错误,提示“无法更新定位行。一些可能已在最后一次读取后已更改”。我试着把ADODataSet1.UpdateBatch放入循环内,以及给UpdateBatch加入crCurrent还是不行。请大家帮忙。
....ADODataSet1.First;While Not ADODataSet1.Eof Do
begin
if ADODataSet1[2]=条件 then
更新
ADODataSet1.Next;
end;ADODataSet1.UpdateBatch;执行时,总是出现错误,提示“无法更新定位行。一些可能已在最后一次读取后已更改”。我试着把ADODataSet1.UpdateBatch放入循环内,以及给UpdateBatch加入crCurrent还是不行。请大家帮忙。
begin
ADODataSet1.Edit;
更新
end;
ADODataSet1.Next;Email:[email protected]
更亲中已经包含了 ADODataSet1.Edit
SQL.Clear;
SQL.Add('Update yourTable '); //SQL文
SQL.Add(' Set field1=:var1,field2=:var2 ');
SQL.Add('Where field3=:var3 ');
Parameters.ParamByName('var1').Value := 値;//参数付値
Parameters.ParamByName('var2').Value := 値;
Parameters.ParamByName('var3').Value := 値;
ExecSQL; //執行
end;
(建议用Update SQL文更新...)
你把它们的顺序调一下,再试试如何