どのようにして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コマンドが一度にすべてのレコードを削除できる場合、各レコードごとに1つずつ、いくつかのDELETEコマンドを発行する方法があります。
さらに、一部のデータベースでは、ロールバックデータを生成せずにテーブル全体を空にできるTRUNCATEコマンドがあります(これはOracleですが、他のDBにも同じコマンドが存在する可能性があります) - 後でコマンドをロールバックする必要がないことが確かである限り。
データベースがSQLデータベースではない場合は、ドキュメントがそのテーブルを空にする最良の方法を教えてくれます。
クエリコンポーネント(のTQueryまたはTAdoQueryまたはTSQLQueryを)を使用することができ、Delete From <TableName>
にそのSQL.Textプロパティを設定し、Query.ExecSQL
(代わりのQuery.Open
)を使用します。
Table1.EmptyTableについてはどうですか?あまり効率的
または、:
while table1.recordcount <> 0 do
table1.Delete;
+1のEmptyTable。 –
このTable1.EmptyTableは、実際のデータベースのレコードを実際に削除しますか? –
どのような種類のテーブルですか? BDE TTable? ADOテーブル? dbExpress? –