如题TADOQuery 连接一个ACCESS文件 想把这个ACCESS内的文件里的所有表的记录全部清空,但一个表一个表的执行删除好麻烦,如何能高效处理下呢?

解决方案 »

  1.   

    这个
    你的表很多吗?Delete语句都闲慢啊。
    你可以备份一个空的数据库,如果要执行清空记录的话,别老的删了,备份的改名替换掉就行了。
      

  2.   

    用一个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;
      

  3.   

    上面觉得麻烦就动态获得表名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;