Форум: "Базы";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизОшибка при работе с параметрами Firebird 1.5 Найти похожие ветки
← →
northling (2006-08-22 09:15) [0]Здравствуйте.
Работаю с firebird 1.5, delphi 7.
В tibquery использую параметр в запросе, получаю следующее при вызове Open (значение параметру присвоено):
---------------------------
Debugger Exception Notification
---------------------------
Project eng.exe raised exception class EIBInterBaseError with message "Dynamic SQL Error
SQL error code = -206
Column unknown
PAR1
At line 11, column 17". Process stopped. Use Step or Run to continue.
---------------------------
PAR1 - это как раз имя параметра. Запрос такой:
SELECT
C.NAME,
C.CAPTION,
C.TYPE_ID,
CPAR.NAME AS PARENT_NAME,
C.OWNER
FROM FORM F
INNER JOIN CONTROL C ON F.FORM_ID = C.FORM_ID
LEFT JOIN CONTROL CPAR ON C.PARENT_ID = CPAR.CONTROL_ID
WHERE F.NAME = :par1
ORDER BY C.OWNER, C.CREATE_ORDER
В чём ошибка???
P.S.
Ошибка в этом месте:
procedure TIBSQL.Prepare;
...
Call(FGDSLibrary.isc_dsql_prepare(StatusVector, TRHandle, @FHandle, 0,
PChar(FProcessedSQL.Text), Database.SQLDialect, nil), True);
...
← →
Dok (2006-08-22 10:04) [1]может это поможет
http://ibase.ru/ibx/ibx708del.zip ?
← →
StriderMan © (2006-08-22 10:10) [2]попробуй тот же самый запрос прокрутить в IBExpert"е
← →
Sergey13 © (2006-08-22 10:19) [3]> [0] northling (22.08.06 09:15)
Код, где присваивается значение параметра опубликуй.
← →
PEAKTOP © (2006-08-22 11:47) [4]Может
TIBSQL.CheckParams := true
← →
northling (2006-08-22 19:25) [5]в ibexperte всё работает
значение присваиваю так : query.Params[i].Value := "frmMain";
update kit не помог
← →
Dok (2006-08-22 19:34) [6]а простой запрос с параметром? типа select * from F where Name = :Name?
← →
northling (2006-08-22 20:59) [7]короче, беда явно в isc_dsql_prepare.
может, как-то иначе эта функция реализована в fb?
← →
Sergey13 © (2006-08-23 08:26) [8]> [7] northling (22.08.06 20:59)
Запрос статически прописан в кверике или динамически формируется. Если второе - приведи код полностью.
← →
StriderMan © (2006-08-23 08:37) [9]1. попробуй присваивать параметр так:
query.ParamByName("par1").AsString := "frmMain";
2. Есть такая библиотека, gds32.dll, лежит в систем32 кажется. Это клиентская библиотека для InterBase. Так вот, ее надо поменять на fbclient.dll, входящую в поставку FireBird (переименовать fbclient.dll в gds32.dll, и положить вместо той).
← →
Sergey13 © (2006-08-23 08:43) [10]> [5] northling (22.08.06 19:25)
> значение присваиваю так : query.Params[i].Value := "frmMain";
В цикле что-ли? Код приводи.
← →
StriderMan © (2006-08-23 08:51) [11]поставь брякпоинт на Prepare, и посмотри текст запроса (query.SQL.Text), там в интересующей нас строке должно быть что-то типа
...
WHERE F.NAME = ????
....
и там же посмотриquery.ParamByName("par1").AsString
← →
northling (2006-08-23 09:13) [12]2 StriderMan
всё нормально, трэйсил - value параметра заполнено. что касается текста запроса, то перед prepare там всё, как и было, т.е. "where f.anme = :par1".
хотя где-то перед этим, вроде, было "where f.anme = ?".
точнее могу дома посмотреть.
← →
northling (2006-08-23 09:15) [13]2 Sergey13
там передаётся в процедуру вариантный массив, и присваивается массиву параметров по-элементно.
НО!
проблема-то в том, что вообще с параметрами у меня не фурычит ibquery. Т.е. простейшее .param[0].value = "blabla" даёт ошибку.
← →
Sergey13 © (2006-08-23 09:17) [14]> [13] northling (23.08.06 09:15)
> там передаётся в процедуру вариантный массив, и присваивается
> массиву параметров по-элементно.
> НО!
Код секретный? Тогда грешить можно и на винду. Дело твое.
← →
StriderMan © (2006-08-23 09:52) [15]
> перед prepare там всё, как и было, т.е. "where f.anme = :par1".
видать IBQuery не распознал :par1 как параметр. Если бы распознал, в тексте были бы вопросики.
а что с ParamByName?
← →
Dok (2006-08-23 10:44) [16]А вы уверены что ibx нормально дужит с ФБ 1.5? с 1.0 - да, а вот с 1.5?
← →
unknown © (2006-08-23 10:50) [17]
> Dok (23.08.06 10:44) [16]
Нормально дружит. И с FB 2 дружит.
← →
Dok (2006-08-23 10:51) [18]тогда афтор тупит где-то. Гадать нет смысла. Телепат уволилися.
← →
unknown © (2006-08-23 11:07) [19]Попробовал воспроизвести эту ошибку. Получилось :)
Вылезает при ParamCheck=false;
← →
northling (2006-08-23 11:09) [20]2 Sergey13
причем тут секретность? я ж говорю - ЛЮБОЙ запрос, где я пытаюсь использовать параметры, не работает. Брал из хелпа пример, делал под него таблицу, и тот же результат - ошибка.
а вообще, грешу не на винду, а на fb.
← →
Dok (2006-08-23 11:12) [21]
> а вообще, грешу не на винду, а на fb.
зря
← →
StriderMan © (2006-08-23 11:14) [22]
> northling (23.08.06 11:09) [20]
> а вообще, грешу не на винду, а на fb.
у меня D7 + IBX + FB прекрасно работает. ищи проблему у себя.
а [9] пробовал????
← →
unknown © (2006-08-23 11:16) [23]
> northling (23.08.06 11:09) [20]
> а вообще, грешу не на винду, а на fb.
"Чукча не читатель, чукча писатель" (c) русская народная шутка.
← →
vlad-mal © (2006-08-26 15:41) [24]Если собираетесь использовать FB, то уходите с IBX.
Фичи FB 2.0 там не поддерживаются и не будут поддерживаться.
← →
PEAKTOP © (2006-08-26 15:57) [25]
> Если собираетесь использовать FB, то уходите с IBX.
> Фичи FB 2.0 там не поддерживаются и не будут поддерживаться.
Присоеденяюсь, особенно необходимые вещи
http://delphimaster.net/view/3-1156510745/
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.042 c