如何删除TABLE中的指定记录(50分)

  • 主题发起人 主题发起人 石光亮
  • 开始时间 开始时间

石光亮

Unregistered / Unconfirmed
GUEST, unregistred user!
Table2.Active:=True;
Table2.Exclusive:=True;
Table2.First;
while not Table2.Eof do
begin
if Table2.FieldValues['业务编号']=FlowNumber then
begin
//Table2.Edit;
Table2.Delete;
//Table1.ApplyUpdates;
//Table2.Post;
end;
Table2.Next;
end;
Table2.Active:=False;
执行时总是出错,说不能在open dataset中执行这步操作,请指教!!!
 
请指明所用的数据库, 另外,你可跟踪一下看看是哪一步出错,否则不好回答你的问题。
 
为何不把程序写得精练点
 
能否给段标准的删除代码看看
 
你打开的数据库是只读数据库。
 

Table2.Active:=True;
Table2.Exclusive:=True;
改为
Table2.Exclusive:=True;
Table2.Active:=True;
注意:
1、当Table2.Active:=True时是不能修改Table2.Exclusive的属性的。
2、一旦执行了Table2.Exclusive:=True后将不能再修改Table2.Active的属性,因为
Table2已经被独占了。
 
PPMouse说的对!
 
Table2.Exclusive:=True;//modify this
Table2.Active:=True;
Table2.First;
while not Table2.Eof do
begin
if Table2.FieldValues['业务编号']=FlowNumber then
begin
//Table2.Edit;

Table2.Delete;
//加上这句
continus;
//Table1.ApplyUpdates;
//Table2.Post;
end;
Table2.Next;
end;
Table2.Active:=False;
 
我是用Query做的,你看如何?

if MessageDlg('要删除吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
Form1.Query1.Active := false;
Form1.Query1.Close;
Form1.Query1.SQL.Clear;
Form1.Query1.SQL.Add('delete from table1 where 业务编号=:value0);
Form1.Query1.Params[0].AsString := FlowNumber;
Form1.Query1.ExecSQL;
end;
 
Table2.Open;
while not Table2.Eof do
begin
if Table2.FieldValues['业务编号']=FlowNumber then
Table2.Delete;
Table2.Next;
end;
Table2.Close;
 
接受答案了.
 
后退
顶部