Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

Удаление записей после фильтрации...   Найти похожие ветки 

 
BillyJeans ©   (2003-09-04 12:03) [0]

Существует ли метод удаления отфильтрованных записей в таблице? Желательно одной командой...


 
Sandman25 ©   (2003-09-04 12:07) [1]

Оставшиеся после фильтра записи можно удалить командой
with Query do
begin
sql.add("delete from table where " + Dataset.filter);
execproc;
end;

Если использовался OnFilterRecord, то можно пройтись по всем записям (First, while not Eof do ... Next) удалить их (Dataset.Delete).


 
BillyJeans ©   (2003-09-04 12:15) [2]

У меня TTable, а (First, while not Eof do ... Next) вовсе не одна команда, и выполняется медленно :(


 
BillyJeans ©   (2003-09-04 12:19) [3]

да, причем Next в данном случае все испортит!


 
Sandman25 ©   (2003-09-04 12:19) [4]

Ну и что, что Table? Добавьте еще TQuery, можете его динамически создать, если он редко используется.

with TQuery.Create(nil) do
try
DatabaseName := Table.DatabaseName;
Sql.Add("Delete from " + Table.TableName + " where " + Table.Filter);
ExecProc;
finally
Free;
end;


 
BillyJeans ©   (2003-09-04 12:28) [5]

ExecProc тоже не выход, т.к. будет медленно отрабатывать из-за разных фильтров...


 
Sandman25 ©   (2003-09-04 12:33) [6]

[5] BillyJeans © (04.09.03 12:28)

Что значит из-за разных фильтров? Или удаляются все сразу (с помощью TQuery, и тогда абсолютно не важно, существует ли вообще какой-то там TTable) или по одной (с помощью цикла по TTable). Других способов нет.


 
BillyJeans ©   (2003-09-04 12:40) [7]

еще варианты есть?


 
VAleksey ©   (2003-09-04 12:42) [8]

Next не нужен!!
While not Table1.Eof do Table1.Delete;
Вообще - это одна команда :-). С точки зрения паскаля ес-с-но.


 
Sandman25 ©   (2003-09-04 12:48) [9]

[8] VAleksey © (04.09.03 12:42)

>Next не нужен!!

Точно. Позор на мои седины :)

>Вообще - это одна команда :-). С точки зрения паскаля ес-с-но.

Application.Run - тоже одна команда, с точки зрения синтаксиса.
И главный begin end - тоже :)



Страницы: 1 вся ветка

Текущий архив: 2003.09.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
14-82480
kopcap
2003-09-05 21:57
2003.09.25
КАК УСТРОЕНА ICQ ???


4-82546
DelBoy
2003-07-22 22:46
2003.09.25
Получить Хендл предыдущего окна


1-82178
Zilog
2003-09-12 11:48
2003.09.25
в Borland Turbo Pascal 7.0 в каком модуле есть функции IntToStr..


3-82136
Брус
2003-09-01 15:33
2003.09.25
Как в FB выбрать с 5 по 10 запись?


3-82145
PrettyFly
2003-09-04 07:36
2003.09.25
несуществующие поля в DataSetе