procedure TMainForm.DeleteClick(Sender: TObject);
var
DelId : integer;//当前删除的记录的ID号
begin
//将所有记录的ID号码减1
DelId:=DM.ADODataSet1['id'];
DM.AdoDataSet1.Delete;
with DM.ADOQueryTxl DO
begin
Close;
Sql.Clear;
Sql.Add('update txl set id=id-1 where id>:DelId');
open;
end;
end;记录1,2,3,4,5,6,7,8,9,10
当把6记录删除后,把6以后的记录向前移动,原来的7,8,9,10变成6,7,8,9
但是上面的代码好像有问题,好像是SQL语句有点问题,大家帮我看看。谢!
var
DelId : integer;//当前删除的记录的ID号
begin
//将所有记录的ID号码减1
DelId:=DM.ADODataSet1['id'];
DM.AdoDataSet1.Delete;
with DM.ADOQueryTxl DO
begin
Close;
Sql.Clear;
Sql.Add('update txl set id=id-1 where id>:DelId');
open;
end;
end;记录1,2,3,4,5,6,7,8,9,10
当把6记录删除后,把6以后的记录向前移动,原来的7,8,9,10变成6,7,8,9
但是上面的代码好像有问题,好像是SQL语句有点问题,大家帮我看看。谢!
begin
Close;
Sql.Clear;
Sql.Add('update txl set [id]=[id]-1 where [id]>:DelId');
Parameters.ParamByName('DelId').Value = DelId;
ExecSQL;
end
begin
Close;
Sql.Clear;
Sql.Add('update txl set id=ID-1 where id>:DelId');
Parameters.ParamByName('ID').Value:=FieldbyName('id').Value;
Parameters.ParamByName('DelId').Value:= Edit1.text(根据实际情况:p)
ExecSQL;
end
上面的SQL语句改为'update tx1 set id=:ID whereid>:DelId';
'Parameters.Parambyname('ID').Value:=Fieldbyname('id').value-1;
应该用ExecSQ呀!
var
DelId : integer;//当前删除的记录的ID号
begin
//将所有记录的ID号码减1
DelId:=DM.ADODataSet1['id'];
DM.AdoDataSet1.Delete;
with DM.ADOQueryTxl DO
begin
Close;
Sql.Clear;
Sql.Add('update txl set id=id-1 where id>:DelId');
ExecSQL;
end;
end;
procedure TMainForm.DeleteClick(Sender: TObject);
var
DelId : integer;//当前删除的记录的ID号
begin
//将所有记录的ID号码减1
DelId:=DM.ADODataSet1['id'];
DM.AdoDataSet1.Delete;
with DM.ADOQueryTxl DO
begin
Close;
Sql.Clear;
Sql.Add('update txl set id=id-1 where id>:DelId');
ExecSQL;
end;
end;