我们如何从DELPHI中的表中删除所有记录?我们不允许像这样使用循环:删除表中的所有记录
for k:=1 to table1.recordcount do
begin
table1.Last;
table1.Delete;
end;
有没有解决方法?
我们如何从DELPHI中的表中删除所有记录?我们不允许像这样使用循环:删除表中的所有记录
for k:=1 to table1.recordcount do
begin
table1.Last;
table1.Delete;
end;
有没有解决方法?
最好的方式来与SQL数据库完成它是直接执行服务器上的删除,无需移动客户端游标。您的方式最终会发出几个DELETE命令,每个记录一个,当一个DELETE命令可以一次删除所有记录时。更好的是,一些数据库有一个TRUNCATE命令(这是Oracle,但可以有一个等效的命令用于其他数据库),可以清空整个表而不生成回滚数据,这通常更快,并且需要更少的服务器资源 - 只要你确定你以后不需要回滚命令。
如果数据库不是SQL数据库,文档将告诉您哪个是清空其表的最佳方式。
你可以使用一个查询组件(TQuery的或TAdoQuery或TSQLQuery),其SQL.Text属性设置为Delete From <TableName>
,然后用Query.ExecSQL
(而不是Query.Open
)。
Table1.EmptyTable如何?
或者,效率较低:
while table1.recordcount <> 0 do
table1.Delete;
+1为EmptyTable。 –
这个Table1.EmptyTable会实际删除实际数据库中的记录吗? –
什么样的表? BDE TTable? ADO表? dbExpress的? –