Страница 1 из 1
Data type unknown
Добавлено: 21 фев 2007, 17:00
qvd
Добрый день!
Есть такой запрос:
Код: Выделить всё
update MAIN
set
ABONENT = :ABONENT, (integer)
ADRES = EnCrypt(:ADRES) (varchar)
where
ID = :OLD_ID
при выполнении - ошибка Data type unknown,
если так ADRES = :ADRES - все работает.
Может необходимо что-то вроде ADRES = EnCrypt(:ADRES) as varchar ... Что делать?
FB 1.5, IbDataSet.
Добавлено: 21 фев 2007, 18:28
WildSery
Пробовал выставить вручную тип параметра?
Добавлено: 22 фев 2007, 09:13
qvd
А как это сделать?
Я попробовал :ABONENT As Integer - ругается на as...
Добавлено: 22 фев 2007, 09:29
Dimitry Sibiryakov
qvd писал(а):А как это сделать?
Согласно документации к используемому набору компонент доступа.
Добавлено: 22 фев 2007, 09:42
qvd
А причем тут компоненты доступа? Меня интересует сам запрос, а отлаживаю я его в IbExpert.
Добавлено: 22 фев 2007, 09:57
Dimitry Sibiryakov
Тогда к чему было твое упонимание ibdataset? И вообще - что-то ты не договариваешь... Покажи объявление EnCrypt.
Добавлено: 22 фев 2007, 10:02
qvd
IbDataset я упомянул на всякий случай, а объявление функции вот:
Код: Выделить всё
DECLARE EXTERNAL FUNCTION ENCRYPT
CSTRING(250)
RETURNS CSTRING(250) FREE_IT
ENTRY_POINT 'EnCrypt_' MODULE_NAME 'taxi.dll'
Сама функция работает отлично (вызывается часто из ХП).
Добавлено: 22 фев 2007, 12:19
WildSery
Сдаётся мне, что делаешь ты всёж-таки не то, что показываешь нам.
Такой апдейт из эксперта выполнится на ура.
Кстати, эксперт не пятилетней давности?
Добавлено: 22 фев 2007, 12:25
qvd
Нет, что показал на форуме, то и делаю, IbExpert - 2006.12.24,
при выполнении этого запроса сообщает:
Код: Выделить всё
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Data type unknown.
Я так понимаю, что сервер незнает, что за тип будет у параметра (EnCrypt ожидает CString), а вот как явно указать серверу тип параметра? (хотя мог бы уже выполнить неявное преобразование..)
Добавлено: 22 фев 2007, 15:56
qvd
Поставил FB 2.0 - запрос прекрасно заработал!
Вернул 1.5 - блин, та-же лажа .... Почему интересно?