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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2012, 00:46   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию запрос SQL через ADO - ошибка Delphi7

Всем доброго времени суток. Пытаюсь отправить запрос в БД (Mysql), но вылезает ошибка

Цитата:
ADOQuery1: CommandText does not result a result set
Код:
sql:='UPDATE mytable SET name ="'+name22+'" Where Id="2"';
memo1.Lines.add(sql); // для проверки
ADOQuery1.SQL.Add(sql);
ADOQuery1.Active:=true;
Обратил внимание, что моя программа подключается к БД и выполняет этот запрос, хоть и вылезает эта ошибка ...

Подскажите, как избавиться от этой ошибки.

Последний раз редактировалось -Jack-; 12.07.2012 в 02:06.
-Jack- вне форума Ответить с цитированием
Старый 12.07.2012, 08:34   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Запрос.Active := true; (или, что абсолютно тоже самое: Запрос.Open) - используется ИСКЛЮЧИТЕЛЬНО для запросов выборки данных: когда в запросе есть SELECT

в тех случаях, когда выборка данных производится не должна (в вашем случае запрос не возвращает набор данных, о чём Вам английским по белому и написано!) нужно выполнять метод ExecSQL:

Код:
  ADOQuery1.Close; {на всякий случай}
  ADOQuery1.SQL.Clear; {а предыдущий (старый) запрос кто стирать будет? Билл Гейтс?!}
  ADOQuery1.SQL.Add(sql); 
  ADOQuery1.ExecSQL;

Последний раз редактировалось Serge_Bliznykov; 12.07.2012 в 21:10.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.07.2012, 17:32   #3
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Ругается на команду
Цитата:
ADOQuery1.SQL.Close;
Заменил на
Цитата:
ADOQuery1.Active:=false;
всё заработало. Большое спасибо

Последний раз редактировалось -Jack-; 12.07.2012 в 17:34.
-Jack- вне форума Ответить с цитированием
Старый 12.07.2012, 21:10   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так, для разъяснения.

Цитата:
ADOQuery1.SQL.Close;
Это моя опечатка. методы Open и Close есть у самого датасета:
Код:
  ADOQuery1.Close;
p.s. подправил в своём сообщении выше...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
unable to rename 'C:\ProgramFiles\Borland\Delphi7\Bi n\Delphi32.$$$' to 'C:\Program Files\Borland\Delphi7\ KazBoy Помощь студентам 1 12.04.2011 18:07
Delphi7 Commenced Фриланс 7 03.12.2010 15:33
Delphi7 Veterok0587 Помощь студентам 4 07.04.2010 16:48
подключение двух компьютеров к интернет через одно подключение Chudo4258 Помощь студентам 3 30.03.2010 16:07