Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Oracle & DBX [IB6.x]


Johnmen ©   (2003-03-03 12:00:00) 

Неожиданно возникла проблема, даже, я сказал бы, непонятка...
Имеется TSQLQuery c WHERE ... (<поле типа number(10)>=:id)
Если вместо параметра проставить конкретное целое число, то все нормально, если использовать параметр (определив его как входной, целочисленный, значение тоже целое), то и в дизайн и в рантайме получаю "DBX Error: Invalid Field Type."
Подскажите, пожалуйста, в чем может быть дело.


Nikolay M.   (2003-03-04 12:03:00) [1]

Вопрос наивный, но уточнить все-таки нужно: ParamType у параметра указан? Думаю, что ответ будет утвердительный. Тогда, если стоит Д5, можно попробовать поставить Update Pack (если он не установлен, конечно).


Johnmen   (2003-03-04 12:03:00) [2]

Спасибо, мужики, подтолкнули, разобрался...
Действительно, особенность параметров в TSQLQuery.
Работает так (<поле типа number(10)>=:id), причем параметр надо определить как ftString ! Во как ! :)))

>Val ©
>...почему указаны Oracle и IB

Виноват, не доглядел :). Правильно - Oracle.


Val   (2003-03-04 11:57:00) [3]

параметр (определив его как входной, целочисленный, значение тоже целое)
кстати - у нас проект работает с Oracle/BDE, так вот, поскольку бде также тупит с целым параметром, то обычно у параметра даже для целых значений выставляется DataType:ftFloat, ParamType: ptUnknown, Value.Type:Unassigned.


Val   (2003-03-04 11:50:00) [4]

>Johnmen © (04.03.03 11:22)

>Val ©

По-моему, мы на "ты"... :))

:) да я, бывает, просто не обращаю внимания, в какой форме обратился.
по теме:
а скажи для тех кто в танке, почему указаны Oracle и IB, к какой субд все-таки происходит запрос?


passm   (2003-03-04 11:31:00) [5]

Johnmen © (04.03.03 11:22)> Т. е. дело не в Oracle...
Возникает подозрение о понимании DBX параметров. Если выполнить запрос типа:
VALUES(CAST(:ID AS CHARACTER(32)))
И попробовать искать решение отталкиваясь от него.


Johnmen   (2003-03-04 11:22:00) [6]

>Val © (04.03.03 10:44)
>passm © (04.03.03 10:52)

Спасибо за идею, но <поле типа number(10)> = CAST(:ID AS NUMBER(10)) не помогло...

>Val ©

По-моему, мы на "ты"... :)))
>а на каком этапе происходит ошибка?
В дизайне при попытке выставить Active в True, в рантайме соответственно при попытке выполнить Open.


passm   (2003-03-04 10:52:00) [7]

Johnmen © (03.03.03 12:00)> А если <поле типа number(10)> = CAST(:ID AS NUMBER(10))


Val   (2003-03-04 10:44:00) [8]

скажите, а на каком этапе происходит ошибка?
может, попробовать привести в запросе поля к одному типу?


Johnmen   (2003-03-04 10:05:00) [9]

...вопрос остался...


Johnmen   (2003-03-03 15:03:00) [10]

...всплываем...


Johnmen   (2003-03-03 12:14:00) [11]

Перепробовал массу вариантов, Float в т.ч.
Результат аналогичен...


Val   (2003-03-03 12:10:00) [12]

а с Float?


Наверх

Титульная страница Поиск, карта сайта Написать письмо