Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 04:04   #1
reihtmonbern
Форумчанин
 
Регистрация: 08.01.2011
Сообщений: 102
По умолчанию Ошибка про выполнении SQL

Здравствуйте товарищи программисты у меня к вам вопрос использую ниже переведенный код он работает всё нормально но делфи ругается.
Код:
begin
 {DataModule3.ADOQuery37.SQL.Add('truncate table TORG'); }
   DataModule3.ADOQuery37.open;
  DataModule3.ADOQuery37.sql.Clear;
DataModule3.ADOQuery37.SQL.Add('DELETE from TORG');
DataModule3.ADOQuery37.Active:=True;
DataModule3.ADOQuery37.Close;
end;
я понимаю что делфи просто пишет что нельзя вернуть значения .
Но как сделать так что бы во время пользования приложением не выводилось это сообщение не знаю на рисунке второе снизу. заранее всем спасибо кто прочитал хотя бы мою тему..
БД ACCESS delphi 2010. ado.
Изображения
Тип файла: jpg ошибки.jpg (55.6 Кб, 84 просмотров)

Последний раз редактировалось Serge_Bliznykov; 27.05.2012 в 09:52.
reihtmonbern вне форума Ответить с цитированием
Старый 27.05.2012, 09:53   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
DataModule3.ADOQuery37.SQL.Add('DELETE from TORG');
//DataModule3.ADOQuery37.Active:=True ;    убрать
DataModule3.ADOQuery37.ExecSQL;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.05.2012, 09:58   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

"смешались в кучу кони, люди..."

вы зачем делаете Open и .Active := true ?!
Open - открыть набор данных, т.е. сделать запрос активным
.Active := true - сделать запрос активным, тем самым открыть набор данных.
это ОДНО и ТОЖЕ!
Это раз!

а во вторых, вы же в данном случае НЕ ОТКРЫВАЕТЕ набор данных, вы хотите ВЫПОЛНИТЬ команду. А для этого есть специальных метод .ExeсSQL!
вот его и надо вызывать!

Код:
begin
   DataModule3.ADOQuery37.Close; {это для перестраховки. Вдруг вы этим ADOQuery37 пользуетесь для выборки данных!
 Если нет - можно эту строчку убрать. Хотя, можно и оставить. Она безобидная...}
  DataModule3.ADOQuery37.sql.Clear;
  DataModule3.ADOQuery37.SQL.Add('DELETE from TORG'); {все данные из таблицы удаляете?! Не страшно?}
  DataModule3.ADOQuery37.ExecSQL;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Qt ошибка при выполнении PinkPink Помощь студентам 1 10.05.2012 23:47
ошибка в выполнении программы dearkato Помощь студентам 2 25.02.2012 15:49
C: free() - ошибка при выполнении Colder M Помощь студентам 5 28.02.2011 15:17
Ошибка при выполнении 123cmp Помощь студентам 4 22.01.2011 23:45