![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Хм... Слово "пока" в конце предыдущего сообщения оказалось случайно, в ходе его редактирования. :)