|
Вопрос # 6 126/ вопрос решён / |
|
Здравствуйте, эксперты!
подскажите чайнику, пожалуйста, как удалить сразу все записи в таблице?
tVvod.Delete удаляет по одной записи..а как сделать, чтобы удалить именно все сразу?
 |
Вопрос задала: Ромашка (статус: Посетитель)
Вопрос отправлен: 10 мая 2012, 15:06
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: stales
Здравствуйте, Ромашка! Вот мой рабочий пример полного удаления данных. Только этот код я писал для таблицы Paradox, ну для Access
не сложно переделать.
procedure TForm1.Action11Execute(Sender: TObject); //Нажатие на кнопку на ленте Ribbon
begin
if MessageDlg('Удалить все данные из таблицы?', mtConfirmation, [mbOK, mbCancel],0) = mrOk then
begin
with Table1 do
begin
Active:= False;
Exclusive:= True; // перевод таблицы в эксклюзивный набор данных
Active:= True;
try
EmptyTable; // сама процедура очищения таблицы
except
ShowMessage('Не удается очистить таблицу!');
end;
Active:= False;
Exclusive:= False;
Active:= True;
end;
 |
Ответ отправил: stales (статус: 1-ый класс)
Время отправки: 11 мая 2012, 17:39
|
Мини-форум вопроса
Всего сообщений: 24; последнее сообщение — 12 мая 2012, 08:39; участников в обсуждении: 2.
Страницы: [1] [2] [Следующая »]
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 17:34 [#1]:
какие компоненты используются для доступа к БД?
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 17:47 [#2]:
ADOTable, ADOConnection, DataSource
|
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 18:03 [#3]:
добавьте,например, компонент ADOQuery, в свойство SQL пропишите команду delete from <имя таблицы>. И вызывайте потом: adoquery.execsql
|
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 18:36 [#4]:
Цитата:
delete from <имя таблицы> прописать на кнопку "удалить записи" или на событие ADOQuery?
на кнопку "удалить запись" прописать adoquery.execsql, а куда записать команду delete - я написал выше
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 18:37 [#5]:
может быть я что-то неправильно делаю...но у меня ругается на обе команды...
в свойстве SQL открывается String List Editor. Я туда вписываю delete from <имя таблицы>, он ругается, что таблицу в папке не находит (хотя она там имеется)
а когда пытаюсь вызов процедуры написать, ADOQuery вообще не видит...
|
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 18:52 [#6]:
так вместо <имя таблицы> надо вписать ИМЯ ТАБЛИЦЫ, как она называется в БД
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 18:59 [#7]:
это я понимаю))) не настолько чайник))))
у меня AdoTable стоит на DataModule, а DBGrid на другом юните...вот когда я пишу delete from tVvod (имя самой таблички) он говорит "Ядро бд Microsoft Jet не может найти входную таблицу или запрос 'tVvod'. Проверьте существование таблицы или запроса и правильность имени.", а когда прописываю с путем Vvod.tVvod (с юнитом), говорит, что таблицу не видит...
|
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 19:17 [#8]:
Цитата (Ромашка):
не настолько чайник
ADOQuery связан с ADOConnection?
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 19:24 [#9]:
Конечно!
и с DataSourse
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 19:36 [#11]:
не знаю..) автоматически)))
убрала связь с DS - никаких изменений...
|
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 19:41 [#12]:
DS теперь с чем связан? ADOQuery тоже лучше поместить в DataModule
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 19:52 [#13]:
ADOQuery и так на DataModule
а DS связан по-прежнему с таблицей tVvod
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 20:04 [#15]:
да
|
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 20:10 [#16]:
в SQL зпросе надо прописать не имя компонента ADOTable в программе, а ИМЯ ТАБЛИЦЫ в базе данных, которая содержит данные
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 20:14 [#17]:
"ADOQuery: CommandText does not return a result set"
и ADOQuery юнит по-прежнему не видит...
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 20:27 [#18]:
проект работает, если не писать строку DM.DataModule2.ADOQuery.execsql;
|
|
Мережников Андрей (статус: Абитуриент), 10 мая 2012, 20:29 [#19]:
Цитата (Ромашка):
ADOQuery юнит по-прежнему не видит
какой юнит должен видеть ADOQuery?
Цитата (Ромашка):
CommandText does not return a result set
что прописано в CommandText и зачем?
|
|
Ромашка (статус: Посетитель), 10 мая 2012, 20:44 [#20]:
должен видеть юнит, на котором кнопка.
на кнопке прописана команда DM.DataModule2.ADOQuery.execsql;
про CommandText ниче сказать не могу, потому что без понятия о чем это. это сообщение мне было выдано, когда я исправила имя таблицы в String Editor и попыталась переставить Active (ADOQuery) в true.
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|