删除表中的所有记录

时间:2011-07-03 16:16:54

标签: database delphi

如何删除DELPHI中表中的所有记录?我们不允许使用这样的循环:

for k:=1 to table1.recordcount do
    begin
      table1.Last;
      table1.Delete;
    end;

有没有解决方案?

3 个答案:

答案 0 :(得分:8)

使用SQL数据库完成它的最佳方法是直接在服务器上执行删除操作,而无需移动客户端游标。当一个DELETE命令可以一次删除所有记录时,您最终会发出多个DELETE命令,每个记录一个。

更好的是,某些数据库有一个TRUNCATE命令(即Oracle,但可以有一个与其他数据库相同的命令),它可以清空整个表而不生成回滚数据,这通常更快,并且在服务器上需要更少的资源 - 只要您确定以后不需要回滚命令。

如果数据库不是SQL数据库,文档将告诉您清空其表的最佳方法。

答案 1 :(得分:6)

您可以使用Query组件(TQuery或TAdoQuery或TSQLQuery),将其SQL.Text属性设置为Delete From <TableName>,然后使用Query.ExecSQL(而不是Query.Open)。

答案 2 :(得分:5)

Table1.EmptyTable怎么样?

或者效率低下:

while table1.recordcount <> 0 do
  table1.Delete;