Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.02.14;
Скачать: CL | DM;

Вниз

TADOCommand и лишние параметры   Найти похожие ветки 

 
Очень злой   (2011-06-01 15:01) [0]

Выполняю в цикле несколько запросов.


   with TADOCommand.Create(nil) do
     try
       ...
       for i:=0 to sqlstrings.Count-1 do
         begin
           s.Subprogres:=i;
           sqltext:=sqlstrings.Strings[i];
           CommandText:=sqltext;
           Execute;
         end;
...


Запросы параметрические. Но каждый запрос может использовать разное кол-во параметров.
Например задал параметры :wd и :yy
Но часть запросов используют только :wd, а часть и :wd, и :yy
При этом возникают ексепшены, из-за того, что в некоторых запросах используются не все параметры (используется только :wd).
Пока нашел выход из ситуации использованием :yy в тех, запросах где он не нужен, добавлением в where заведомо ложного выражения, типа:
... where ... and 1<>yy ...

Но а вообще, почему лишние параметры создают ексепшены? И как более красиво выйти из данной ситуации?
Пока


 
Очень злой   (2011-06-01 15:04) [1]

Хм... Слово "пока" в конце предыдущего сообщения оказалось случайно, в ходе его редактирования. :)


 
clickmaker ©   (2011-06-01 15:06) [2]

> как более красиво выйти из данной ситуации?

самое красивое - использовать хранимую процедуру


 
sniknik ©   (2011-06-01 15:26) [3]

> Но а вообще, почему лишние параметры создают ексепшены?
сами по себе? не может быть.

> самое красивое - использовать хранимую процедуру
???


 
Anatoly Podgoretsky ©   (2011-06-01 16:29) [4]


> Но а вообще, почему лишние параметры создают ексепшены?
> И как более красиво выйти из данной ситуации?

лишние параметры не создают исключений.


 
Anatoly Podgoretsky ©   (2011-06-01 16:30) [5]

И да, в коде не используются ни какие параметры, так что все они лишнии.


 
Очень злой   (2011-06-01 17:27) [6]

Все. Понял. Оказалось что дело не в лишних параметрах, а в том что при каждом запросе список параметров обновляется. Т.е. если выполняется запрос не содержащий всех параметров, то лишние исчезают, и эксепшен возникает при выполнении очередного запроса где используется параметры, которые не использовались в предыдущем...

Т.е. просто я создание параметров и установку им типов и значений производил заранее, один раз, а потом выполнял серию запросов.
А получается нужно перезадавать параметры в цикле..


 
Плохиш ©   (2011-06-02 13:24) [7]


>  при каждом запросе список параметров обновляется.

Читайте справку, там написано в каких случаях ваши умозаключения не верны.



Страницы: 1 вся ветка

Текущий архив: 2016.02.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.005 c
2-1406801514
lewka_s
2014-07-31 14:11
2016.02.14
Формат времени в TDateTimePicker


2-1405507035
FIL-23
2014-07-16 14:37
2016.02.14
дискриптор окна mstsc, не реагируют на функцию SetForegroundWind


2-1398430105
Дмитрий
2014-04-25 16:48
2016.02.14
Ошибка доступа ODBC и mySQL-connector


2-1406884783
Сергей
2014-08-01 13:19
2016.02.14
Не отображаются кнопка на панели mdi child формы


2-1406215639
SchoolBase
2014-07-24 19:27
2016.02.14
Запустить другую программу и дождаться завершения(или таймер)