aodquery 设置为
CursorType:=ctUnspecified;
LockType:=ltBatchOptimistic;
批量查询出记录以后,用delete方法把记录全部删除再如下方法保存
with adoquery do
begin
edit;
post;
updatebatch();
end;
不能保存,也就是没有删除记录,如果只删除部分记录则可以保存。或是全部删除后再添加也可以保存。
以上现象是什么原因。我用的是delphi 7
CursorType:=ctUnspecified;
LockType:=ltBatchOptimistic;
批量查询出记录以后,用delete方法把记录全部删除再如下方法保存
with adoquery do
begin
edit;
post;
updatebatch();
end;
不能保存,也就是没有删除记录,如果只删除部分记录则可以保存。或是全部删除后再添加也可以保存。
以上现象是什么原因。我用的是delphi 7
CursorType:=clUseClient;
LockType:=ltBatchOptimistic;procedure TFmain.Action_DeleteExecute(Sender: TObject);
var i : Integer;
begin
if ADOQuery.IsEmpty then Exit; if DBGrid.SelectedRows.Count=0 then begin //选择的记录数为零
if messagebox(0,'真的删除当前记录吗?','警告',MB_OKCANCEL+MB_ICONQUESTION)=2 then Exit;
end
else
if if messagebox(0,'真的删除当前记录吗?','警告',MB_OKCANCEL+MB_ICONQUESTION)=2 then Exit;
if ADOQuery.Connection.InTransaction then ADOQuery.Connection.RollbackTrans;
ADOQuery.Connection.BeginTrans;
ADOQuery.DisableControls;
if ((DBGrid.SelectedRows.Count=0) or (DBGrid.SelectedRows.Count=1)) then
ADOQuery.Delete
else
for i:=0 to DBGrid.SelectedRows.Count-1 do begin
ADOQuery.GotoBook(pointer(DBGrid.SelectedRows.Items[i]));
ADOQuery.Delete;
end;
try
ADOQuery.UpdateBatch;
ADOQuery.Connection.CommitTrans;
except
ADOQuery.Connection.RollbackTrans;
ADOQuery.CancelUpdates;
messagebox(0,'删除记录出错!','错误',MB_ICONERROR);
end;
ADOQuery.EnableControls;
end;