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

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

TADOCommand и лишние параметры [D7]


Очень злой ©   (2011-06-01 15:01:00) 

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


   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-02 13:24:00) [1]


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

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


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

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

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


Anatoly Podgoretsky   (2011-06-01 16:30:00) [3]

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


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


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

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


sniknik   (2011-06-01 15:26:00) [5]

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

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


clickmaker   (2011-06-01 15:06:00) [6]

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

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


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

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


Наверх

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