Главная страница
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-1406645269
alexdn
2014-07-29 18:47
2016.02.14
Как задать порядок форм


2-1406470466
p
2014-07-27 18:14
2016.02.14
Перевести на С


2-1406801514
lewka_s
2014-07-31 14:11
2016.02.14
Формат времени в TDateTimePicker


2-1406532286
Dmitry
2014-07-28 11:24
2016.02.14
Как в QuickReport открить отчет для просмта сразу в Preview


15-1433494059
Pavelnk
2015-06-05 11:47
2016.02.14
Юридический вопрос