Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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:33 [#10]:

а с DataSource зачем???
Ромашка

Ромашка (статус: Посетитель), 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:01 [#14]:

tvVod - это имя ADOTable?
Ромашка

Ромашка (статус: Посетитель), 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] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 января 2022, 10:41
Выполнено за 0.02 сек.
Рейтинг@Mail.ru