Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2016.02.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
15-1433584118
pavelnk
2015-06-06 12:48
2016.02.14
Событие onShow


2-1406645269
alexdn
2014-07-29 18:47
2016.02.14
Как задать порядок форм


2-1406714267
oleg_teacher
2014-07-30 13:57
2016.02.14
Текст на канве


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


3-1306926111
Очень злой
2011-06-01 15:01
2016.02.14
TADOCommand и лишние параметры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский