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

Вниз

Ошибка при работе с параметрами 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.03 c
15-1159348985
Wolferio
2006-09-27 13:23
2006.10.22
Кодировка НБУ


2-1160404805
*Стажер*
2006-10-09 18:40
2006.10.22
TWebBrowser и TStream


2-1159784860
TrainerOfDolphins
2006-10-02 14:27
2006.10.22
Указатель мыши над контролом...


6-1148733267
Даша
2006-05-27 16:34
2006.10.22
Можно ли узнать местоположение абонента мегафон по компьютеру.


1-1158177480
RagapuK
2006-09-13 23:58
2006.10.22
Как подсоединиться и интернету с помощью Delphi&