我們如何從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的? –