Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1158052079
Моновар
2006-09-12 13:07
2006.10.22
Вопрос по TreeView


2-1159218974
or
2006-09-26 01:16
2006.10.22
Как через iStream передавать данные в dll и получать обратно?


2-1160142543
worldmen
2006-10-06 17:49
2006.10.22
Работа с датой


15-1159540793
Ringo
2006-09-29 18:39
2006.10.22
Есть контакт!


15-1159173745
megabyte-ceercop
2006-09-25 12:42
2006.10.22
Еще раз о траблах с линкером.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский