Query的结果集能否修改,要看你的SQL语句是否符合一定的规范,有一些SQl的结果是无法修改的如带有ORDER BY子句。Query控件有个RecNo属性可用于捕捉鼠标当前选定的行。
例:
var
aRecNo : integer;
begin
aRecNo := aQuery.RecNo;
aQuery.DisableControls;
aQuery.Close;
...delete record...
aQuery.Open;
aQuery.EnableControls;
if aRecNo <= aQuery.RecordCount then
begin
aQuery.RecNo := aRecNo;
end
else
begin
aQuery.Last;
end;
end;