用一个SQL语句,把所有表加进来 var sqlstr:string; begin sqlstr := 'delete from table1;'+ 'delete from table2;'+ 'delete from tablen;'; with adoquery1 do begin sql.Add(sqlstr); execsql; end; end;
上面觉得麻烦就动态获得表名var sqlstr:string; i:integer; begin ADOConnection.GetTableNames(ListBox1.Items,False); sqlstr := ''; if listbox1.Items.Count>0 then begin for i:=0 to listbox1.Items.Count-1 do sqlstr := sqlstr +'delete from '+listbox1.Items[i]+';'; end; with adoquery1 do begin sql.Add(sqlstr); execsql; end; end;
你的表很多吗?Delete语句都闲慢啊。
你可以备份一个空的数据库,如果要执行清空记录的话,别老的删了,备份的改名替换掉就行了。
var
sqlstr:string;
begin
sqlstr := 'delete from table1;'+
'delete from table2;'+
'delete from tablen;';
with adoquery1 do
begin
sql.Add(sqlstr);
execsql;
end;
end;
sqlstr:string;
i:integer;
begin
ADOConnection.GetTableNames(ListBox1.Items,False);
sqlstr := '';
if listbox1.Items.Count>0 then
begin
for i:=0 to listbox1.Items.Count-1 do
sqlstr := sqlstr +'delete from '+listbox1.Items[i]+';';
end;
with adoquery1 do
begin
sql.Add(sqlstr);
execsql;
end;
end;