这是小弟的代码:
procedure TForm1.Button2Click(Sender: TObject);
var str,a,b:string;
begin
if query1.active then
begin
str:='确实要删除用户'+ Trim(a)+ '?';
while (Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES) and (not (query1.Eof)) do
begin
query1.First;
a:=query1.fieldbyname('recmac').AsString;
b:=query1.fieldbyname('spname').AsString;
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('insert into canceltb(command,machine,canceltime,executed,spname)');
query2.SQL.Add('values (:a,:b,:c,:d,:e)');
query2.ParamByName('a').AsString:='手动';
query2.ParamByName('b').AsString:=a;
query2.ParamByName('c').AsString:=datetimetostr(now);
query2.ParamByName('d').AsString:='1';
query2.ParamByName('e').AsString:=b;
query2.ExecSQL;
query1.close;
query1.sql.clear;
query1.sql.add('delete from splogin where recmac=:a');
query1.ParamByName('a').AsString:=a;
query1.ExecSQL;
end;
end;
if query1.Eof then
button2.Enabled:=false;
end;
小弟的需求是把查找出来的表格中的记录删除并将所找出来记录的recmac和spname这两个字段的值写进新的表中(query2),现在记录可以删除,但是每次只能写一条记录进去希望能够帮我解决!!!!
procedure TForm1.Button2Click(Sender: TObject);
var str,a,b:string;
begin
if query1.active then
begin
str:='确实要删除用户'+ Trim(a)+ '?';
while (Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES) and (not (query1.Eof)) do
begin
query1.First;
a:=query1.fieldbyname('recmac').AsString;
b:=query1.fieldbyname('spname').AsString;
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('insert into canceltb(command,machine,canceltime,executed,spname)');
query2.SQL.Add('values (:a,:b,:c,:d,:e)');
query2.ParamByName('a').AsString:='手动';
query2.ParamByName('b').AsString:=a;
query2.ParamByName('c').AsString:=datetimetostr(now);
query2.ParamByName('d').AsString:='1';
query2.ParamByName('e').AsString:=b;
query2.ExecSQL;
query1.close;
query1.sql.clear;
query1.sql.add('delete from splogin where recmac=:a');
query1.ParamByName('a').AsString:=a;
query1.ExecSQL;
end;
end;
if query1.Eof then
button2.Enabled:=false;
end;
小弟的需求是把查找出来的表格中的记录删除并将所找出来记录的recmac和spname这两个字段的值写进新的表中(query2),现在记录可以删除,但是每次只能写一条记录进去希望能够帮我解决!!!!
var str,a,b:string;
begin
if query1.active then
begin
str:='确实要删除用户'+ Trim(a)+ '?';
if(Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES) then
while not (query1.Eof) do
begin
query1.First;
a:=query1.fieldbyname('recmac').AsString;
b:=query1.fieldbyname('spname').AsString;
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('insert into canceltb(command,machine,canceltime,executed,spname)');
query2.SQL.Add('values (:a,:b,:c,:d,:e)');
query2.ParamByName('a').AsString:='手动';
query2.ParamByName('b').AsString:=a;
query2.ParamByName('c').AsString:=datetimetostr(now);
query2.ParamByName('d').AsString:='1';
query2.ParamByName('e').AsString:=b;
query2.ExecSQL;
qyery1.next;
end;
query1.close;
query1.sql.clear;
query1.sql.add('delete from splogin where recmac=:a');
query1.ParamByName('a').AsString:=a;
query1.ExecSQL;
end;
button2.Enabled:=false;
end;
query1.sql.clear;
query1.sql.add('delete from splogin where recmac=:a');
query1.ParamByName('a').AsString:=a;
query1.ExecSQL;///之后query1所连接的数据是什么???当第二次循环时:
query1.First;
a:=query1.fieldbyname('recmac').AsString;
b:=query1.fieldbyname('spname').AsString;
//////////////////////
begin
str:='确实要删除用户'+ Trim(a)+ '?';
if Application.messagebox(pchar(str),'删除',MB_YESNO)=ID_YES then
begin
query1.First;
while not (query1.eof) do
begin
a:=query1.fieldbyname('recmac').AsString;
b:=query1.fieldbyname('spname').AsString;
with query2 do
begin
Close;
SQL.Clear;
SQL.Add('insert into canceltb(command,machine,canceltime,executed,spname)');
SQL.Add('values (:a,:b,:c,:d,:e)');
Parameters.ParamByName('a').AsString:='手动';
Parameters.ParamByName('b').AsString:=a;
Parameters.ParamByName('c').AsString:=datetimetostr(now);
Parameters.ParamByName('d').AsString:='1';
Parameters.ParamByName('e').AsString:=b;
ExecSQL;
end;//query2
with query1 do
begin
close;
sql.clear;
sql.add('delete from splogin where recmac=:a');
ParamByName('a').AsString:=a;
ExecSQL;
close;
sql.clear;
sql.add('select * from splogin');
open;
end;//query1
end;//end (query1.eof)
end;
end;
///试试看.....