Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка "CommandText does not return a result set".


Страницы:   1 2

Kolan ©   (2006-10-25 23:59:00) 

Здравствуйте,
 Делаю такой запрос:

 S := 'INSERT INTO dbo.Operators VALUES ('
   +#39+ SurName +#39+ ',' +#39+ Name +#39+ ',' +#39+ PatronymicName +#39+ ')';
 BaseManager.ExecQuery(S);


И соответственно:

function TBaseManager.ExecQuery(Query: string): Boolean;
begin
 FADODataSet.Active := False;
 FADODataSet.CommandText := Query;
 FADODataSet.Active := True;
end;


Получаю ошибку как в сабже. Прочел на королевстве что для ADO Queryесть ExcecSQL. А как быть с FADODataSet?


DrPass   (2006-10-26 17:48:00) [21]

А чем оно плохо? Используется для совместимости с другими Query, и просто копируется в CommandText датасета


Anatoly Podgoretsky   (2006-10-26 17:40:00) [22]

Наоборот полный зачет, и это не углубляясь во внутренне устройство.


DrPass   (2006-10-26 17:36:00) [23]

Не считается :)


Anatoly Podgoretsky   (2006-10-26 17:00:00) [24]

Как это нет, а SQL типа strings


DrPass   (2006-10-26 16:57:00) [25]


> Anatoly Podgoretsky ©   (26.10.06 16:18) [10]


> Чего в нем удобного по сравнению с Dataset/Command?
> Кроме наличия перегрузок и некоторых ошибок

Никаких перегрузок и ошибок там нет (по крайней мере, по сравнению с ADODataSet) - TADOQuery прямой наследник TCustomADODataset + свойства SQL, RowsAffected и метод ExecSQL, и ничего боле. А удобство - очевидно. Унифицированный код, который при необходимости можно легко портировать на другой тип источников данных, да и просто новичку освоить легче, по любой книге о Delphi + BDE


Германн   (2006-10-26 16:41:00) [26]


> Anatoly Podgoretsky ©   (26.10.06 16:32) [12]
>
>
> > А если Николай обидится
>
> С чего бы, он придерживает такой же позиции. А то что не захотел переключать раскладку, то за такое он не обижается.

Дык я не про позицию и не про раскладку, а про вторую букву в нике :-)


Anatoly Podgoretsky   (2006-10-26 16:32:00) [27]


> А если Николай обидится

С чего бы, он придерживает такой же позиции.
А то что не захотел переключать раскладку, то за такое он не обижается. А вот если он пожелает подключиться и в очередной раз захочет выразить свое ФИ, правда я бы не стал, уже надоело это разжевывать в Базах.


Германн   (2006-10-26 16:27:00) [28]


> но информацию по ним приводил Шикник в Базах.

А если Николай обидится? :-)


Anatoly Podgoretsky   (2006-10-26 16:18:00) [29]

Отказываться от очень удобного компонента
Чего в нем удобного по сравнению с Dataset/Command?
Кроме наличия перегрузок и некоторых ошибок, на которые я к счастью не нарывался, но информацию по ним приводил Шикник в Базах.
Зачем изучать несколько технологий и ломать голову, когда есть прямые, а не костыли над ними?

Применять конечно имеешь право и никто тебе не судья, но упорствовать в этом не является признаком профессионализма.


Shirson   (2006-10-26 15:58:00) [30]

Отказываться от очень удобного компонента, из-за того, что некоторые не умеют им пользоваться? Нах такое счастье.
ADOQuery самый удобный.  Всё описанно в хелпе и ненужно в обход его изобретать собственную логику использования компонентов.


Ketmar   (2006-10-26 14:27:00) [31]

>[7] Плохиш(c) 26-Oct-2006, 13:51
>Представляешь, что будет, если хотя бы в одной из этих
>переменных будет свой апостров?
от "ничего страшного" до "ой, а почему у меня в базе нет ничего?" %-))


Плохиш   (2006-10-26 13:51:00) [32]


> Крайний случай заблуждений в еоде выглядит так
> Q.Active := True;
> Q.ExecSQL;
> Q.Open;
> Это реальный код из форумов.

Так это же логично :-)
Q.Active := True;- Сделать кАмпАненту активной
Q.ExecSQL;- выполнить запуздыренный запрос
Q.Open;- открыть набор данных

Хорошо, что хоть в такой последовательности :-)

> Kolan ©   (25.10.06 23:59)  
> Здравствуйте,
>  Делаю такой запрос:
>
>  S := 'INSERT INTO dbo.Operators VALUES ('
>    +#39+ SurName+#39+ ',' +#39+ Name+#39+ ',' +#39+ PatronymicName
> +#39+ ')';

Представляешь, что будет, если хотя бы в одной из этих переменных будет свой апостров?


Anatoly Podgoretsky   (2006-10-26 12:03:00) [33]

Ты думаешь, что не вводит, наблюдение за форумами этого не подтверждает, при том желательно пройтись по всему приведеному списку.
Крайний случай заблуждений в еоде выглядит так
Q.Active := True;
Q.ExecSQL;
Q.Open;

Это реальный код из форумов.


DrPass   (2006-10-26 09:50:00) [34]


> забудьте что есть такая штука как Query, она же только в
> заблуждения вводит

Глупости. ADOQuery ничем не отличается от ADODataSet, кроме нескольких свойств "для совместимости" и возможности исполнять не возвращающие НД команды. Кто сомневается, может посмотреть исходник в ADODB.pas


Anatoly Podgoretsky   (2006-10-26 08:57:00) [35]


> Вот любители извращаться!

Любители шагать по граблям

Параметры
Параметры
Параметры


Anatoly Podgoretsky   (2006-10-26 08:56:00) [36]

Сколько раз говорили, забудьте что есть такая штука как Query, она же только в заблуждения вводит, поубивал бы Борланд, везде понавпихивали свои Tabe, Query, StoredProc - народу мозги затуманили.

Для базовой работы с базами нужны только две вещи - Dataset для запросов возвращающих набор данных или набор записей и Command для всего остального.
Вот остальное можно только выполнить, а слово это переводится на ангельский как Execute


evvcom   (2006-10-26 08:28:00) [37]

> [0] Kolan ©   (25.10.06 23:59)
> + #39+ SurName + #39+ ',' + #39+ Name + #39+

Вот любители извращаться! #39 - это что? Апостроф? А нормально написать не судьба? Чтобы читаемо было:
VALUES (''' + SurName + ''',''' +
Но еще более читабельно будет с параметрами:
'... VALUES (:SurName, :Name, :PatronymicName)';
Не так ли?


DrPass   (2006-10-26 01:04:00) [38]

Никак. Он предназначен для выборки, а не для вставки данных, о чем тебе и пытается сказать. Вставляй с помощью ADOQuery, что тебе мешает-то?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо