Форум: "Начинающим";
Текущий архив: 2009.06.28;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c