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

Вниз

Parameter bbb_id not found   Найти похожие ветки 

 
Pavlov ©   (2009-05-12 15:58) [0]

with DataModule1.IBQuery do
 begin
     SQL.Clear;
     SQL.Add(" select aaa_id FROM Table1 left join Table2 on  Table1.bbb_id= Table2.bbb_ID "+
             " where Table2.ccc_id = : ccc_ID   and   Table2.bbb_id = : bbb_ID");
     ParamByName("bbb_ID").AsInteger := 452559; //
     ParamByName("ccc_ID").AsInteger := 9958; //
     Open;
     aaa_ID := FieldByName("aaa_id").AsInteger;
     Close;
 end;

Почему-то выдает ошибку  Parameter bbb_id not found.
Пробовал запрос в IBExpert, там все работает.


 
Ega23 ©   (2009-05-12 17:18) [1]

1. DataModule1.IBQuery.ParamCheck чему равно?
2. А зачем так, если каждый раз один фиг текст запроса задаёшь? Не проще ли значение параметра сразу задавать?
3. Пока писал, увидел. Перепиши так:
" where Table2.ccc_id=:ccc_ID and Table2.bbb_id=:bbb_ID");


 
Медвежонок Пятачок ©   (2009-05-12 17:18) [2]

пробел убери


 
Palladin ©   (2009-05-12 19:42) [3]

Удалено модератором


 
Petr V. Abramov ©   (2009-05-13 00:16) [4]


> Ega23 ©   (12.05.09 17:18) [1]


> 3.

да

> 2. А зачем так, если каждый раз один фиг текст запроса задаёшь?
>  Не проще ли значение параметра сразу задавать?

не всегда проще. в некоторых субд :) запрос кешируется на сервере во избежании парсинга и оптимизации, и при явном задавании параметров перерасход памяти будет.


 
Игорь Шевченко ©   (2009-05-13 00:51) [5]

Petr V. Abramov ©   (13.05.09 00:16) [4]

В Интербейзе вроде не кешируется


 
Германн ©   (2009-05-13 01:11) [6]

Я бы всё-таки обратил ещё раз внимание на первый вопрос от "Ega23 ©   (12.05.09 17:18) [1]".
Уж очень часто (а я очень редко работаю с БД) возникают такие вопросы.


 
Ega23 ©   (2009-05-13 10:10) [7]


> не всегда проще. в некоторых субд :) запрос кешируется на
> сервере во избежании парсинга и оптимизации, и при явном
> задавании параметров перерасход памяти будет.


Тогда задай текст один раз, создай параметры, выполни ему Prepare, и потом работай, подставляя значения параметров. Нафига каждый раз текст менять?
И, эта... Это ну ОЧЕНЬ вумная СУБД должна быть, чтобы вот так вот данный запрос распознать.


 
Игорь Шевченко ©   (2009-05-13 12:29) [8]


> Это ну ОЧЕНЬ вумная СУБД должна быть, чтобы вот так вот
> данный запрос распознать


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



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
4-1211888967
Сергей
2008-05-27 15:49
2009.06.28
Хуки


2-1241710479
sergeii
2009-05-07 19:34
2009.06.28
Использование функций из другого *.pas faila


3-1222915555
Татьяна
2008-10-02 06:45
2009.06.28
Lookup поля в таблицах.


2-1242153875
Fynjy
2009-05-12 22:44
2009.06.28
FormKeyDown


4-1211923401
Азат
2008-05-28 01:23
2009.06.28
работа с COM портом