![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при работе с параметрами Firebird 1.5 [D7, Firebird 1.5]
northling © (2006-08-22 09:15:00)Здравствуйте.
Работаю с 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);
...
PEAKTOP (2006-08-26 15:57:00) [1]
> Если собираетесь использовать FB, то уходите с IBX.
> Фичи FB 2.0 там не поддерживаются и не будут поддерживаться.
Присоеденяюсь, особенно необходимые вещи
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1156510745&n=1
vlad-mal (2006-08-26 15:41:00) [2]Если собираетесь использовать FB, то уходите с IBX.
Фичи FB 2.0 там не поддерживаются и не будут поддерживаться.
unknown (2006-08-23 11:16:00) [3]
> northling (23.08.06 11:09) [20]
> а вообще, грешу не на винду, а на fb.
"Чукча не читатель, чукча писатель" (c) русская народная шутка.
StriderMan (2006-08-23 11:14:00) [4]
> northling (23.08.06 11:09) [20]
> а вообще, грешу не на винду, а на fb.
у меня D7 + IBX + FB прекрасно работает. ищи проблему у себя.
а [9] пробовал????
Dok (2006-08-23 11:12:00) [5]
> а вообще, грешу не на винду, а на fb.
зря
northling (2006-08-23 11:09:00) [6]2 Sergey13
причем тут секретность? я ж говорю - ЛЮБОЙ запрос, где я пытаюсь использовать параметры, не работает. Брал из хелпа пример, делал под него таблицу, и тот же результат - ошибка.
а вообще, грешу не на винду, а на fb.
unknown (2006-08-23 11:07:00) [7]Попробовал воспроизвести эту ошибку. Получилось :)
Вылезает при ParamCheck=false;
Dok (2006-08-23 10:51:00) [8]тогда афтор тупит где-то. Гадать нет смысла. Телепат уволилися.
unknown (2006-08-23 10:50:00) [9]
> Dok (23.08.06 10:44) [16]
Нормально дружит. И с FB 2 дружит.
Dok (2006-08-23 10:44:00) [10]А вы уверены что ibx нормально дужит с ФБ 1.5? с 1.0 - да, а вот с 1.5?
StriderMan (2006-08-23 09:52:00) [11]
> перед prepare там всё, как и было, т.е. "where f.anme = :par1".
видать IBQuery не распознал :par1как параметр. Если бы распознал, в тексте были бы вопросики.
а что с ParamByName?
Sergey13 (2006-08-23 09:17:00) [12]> [13] northling (23.08.06 09:15)
> там передаётся в процедуру вариантный массив, и присваивается
> массиву параметров по-элементно.
> НО!
Код секретный? Тогда грешить можно и на винду. Дело твое.
northling (2006-08-23 09:15:00) [13]2 Sergey13
там передаётся в процедуру вариантный массив, и присваивается массиву параметров по-элементно.
НО!
проблема-то в том, что вообще с параметрами у меня не фурычит ibquery. Т.е. простейшее .param[0].value = 'blabla' даёт ошибку.
northling (2006-08-23 09:13:00) [14]2 StriderMan
всё нормально, трэйсил - value параметра заполнено. что касается текста запроса, то перед prepare там всё, как и было, т.е. "where f.anme = :par1".
хотя где-то перед этим, вроде, было "where f.anme = ?".
точнее могу дома посмотреть.
StriderMan (2006-08-23 08:51:00) [15]поставь брякпоинт на Prepare, и посмотри текст запроса (query.SQL.Text), там в интересующей нас строке должно быть что-то типа
...
WHERE F.NAME = ????
....
и там же посмотриquery.ParamByName('par1').AsString
Sergey13 (2006-08-23 08:43:00) [16]> [5] northling (22.08.06 19:25)
> значение присваиваю так : query.Params[i].Value := 'frmMain';
В цикле что-ли? Код приводи.
StriderMan (2006-08-23 08:37:00) [17]1. попробуй присваивать параметр так:
query. ParamByName('par1'). AsString:= 'frmMain';
2. Есть такая библиотека, gds32.dll, лежит в систем32 кажется. Это клиентская библиотека для InterBase. Так вот, ее надо поменять на fbclient.dll, входящую в поставку FireBird (переименовать fbclient.dll в gds32.dll, и положить вместо той).
Sergey13 (2006-08-23 08:26:00) [18]> [7] northling (22.08.06 20:59)
Запрос статически прописан в кверике или динамически формируется. Если второе - приведи код полностью.
northling (2006-08-22 20:59:00) [19]короче, беда явно в isc_dsql_prepare.
может, как-то иначе эта функция реализована в fb?
Dok (2006-08-22 19:34:00) [20]а простой запрос с параметром? типа select * from F where Name = :Name?