Удалить все записи из таблицы - PullRequest
1 голос
/ 03 июля 2011

Как мы можем удалить все записи из таблицы в DELPHI? нам не разрешено использовать цикл следующим образом:

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

есть ли решения?

Ответы [ 3 ]

8 голосов
/ 03 июля 2011

Лучший способ сделать это с базой данных SQL - выполнить удаление непосредственно на сервере, не перемещая курсор на стороне клиента. В итоге вы можете выполнить несколько команд DELETE, по одной для каждой записи, когда одна команда DELETE может удалить все записи одновременно.

Более того, в некоторых базах данных есть команда TRUNCATE (это Oracle, но для других БД может быть эквивалентная команда), которая может очистить всю таблицу без генерации данных отката, что обычно быстрее и требует меньше ресурсов на сервере - если вы уверены, что вам не нужно откатывать команду позже.

Если база данных не является базой данных SQL, в документации будет указано, как лучше всего очистить ее таблицы.

6 голосов
/ 03 июля 2011

Как насчет Table1.EmptyTable?

Или менее эффективно:

while table1.recordcount <> 0 do
  table1.Delete;
6 голосов
/ 03 июля 2011

Вы можете использовать компонент Query (TQuery или TAdoQuery или TSQLQuery), установить его свойство SQL.Text на Delete From <TableName>, а затем использовать Query.ExecSQL (вместо Query.Open).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...