У меня два вопроса:
1. Подскажите как очистить БД?
2. И как можно удалить только диапазон каких-нибудь записей?
Заранее благодарен.
Удаление записей в БД
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Pepper, а ты точно уверен, что вопросы по Паскалю?
Даже самый дурацкий замысел можно воплотить мастерски
Перец уточни вопрос
AiK, по базам данных, но не в разздел SQL с этим вопросом идти ... я без него хочу
GOS, уточняю:
Как для набора данных Table удалить:
1) все записи;
2) только несколько, например, диапазон.
GOS, уточняю:
Как для набора данных Table удалить:
1) все записи;
2) только несколько, например, диапазон.
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
А напрасно. Это было бы правильнее.но не в разздел SQL с этим вопросом идти ... я без него хочу
1) Database1.Execute('delete from tablename');
2) Database1.Execute('delete from tablename where <условия, задающие диапазон удаляемых данных>');
Можно, конечно и так.Как для набора данных Table удалить:
1)
Код: Выделить всё
with Table do begin
Active := False;
EmptyTable;
end;
Пробежать по диапазону записей делая Table.Delete. Только надо учесть, что Table.Delete перемещает табличный курсор к следующей записи, так что после Delete не надо делять Table.Next
И все же гораздо правильней быстрее и надежнее выполнить для этих целей SQL оператор DELETE.
Все работает, спасибо...
потом может попробую и с помощью SQL
потом может попробую и с помощью SQL
Я что-то опять накосячил!
Удаление диапазона, удаление одной записи работает, а вот EmptyTable не работает! Выдает сообщение что-то типа 'Table busy' или как-то так... подскажите как быть.
Удаление диапазона, удаление одной записи работает, а вот EmptyTable не работает! Выдает сообщение что-то типа 'Table busy' или как-то так... подскажите как быть.
Подскажу
Надо получить эксклюзивный доступ
т.е.
DM.Table.Active:=false;
DM.Table.Exclusive:=true;
DM.Table.EmptyTable;
а чтобы получить такой доступ набор данных не должен(помоему) быть открыт текущим или другим процессом!
Удачи
Надо получить эксклюзивный доступ
т.е.
DM.Table.Active:=false;
DM.Table.Exclusive:=true;
DM.Table.EmptyTable;
а чтобы получить такой доступ набор данных не должен(помоему) быть открыт текущим или другим процессом!
Удачи
GOS, спасиба, я именно так и сделал