Модераторы: kdv, CyberMax
-
qvd
- Сообщения: 27
- Зарегистрирован: 10 янв 2007, 11:52
Сообщение
qvd » 21 фев 2007, 17:00
Добрый день!
Есть такой запрос:
Код: Выделить всё
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.
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 21 фев 2007, 18:28
Пробовал выставить вручную тип параметра?
-
qvd
- Сообщения: 27
- Зарегистрирован: 10 янв 2007, 11:52
Сообщение
qvd » 22 фев 2007, 09:13
А как это сделать?
Я попробовал :ABONENT As Integer - ругается на as...
-
qvd
- Сообщения: 27
- Зарегистрирован: 10 янв 2007, 11:52
Сообщение
qvd » 22 фев 2007, 09:42
А причем тут компоненты доступа? Меня интересует сам запрос, а отлаживаю я его в IbExpert.
-
Dimitry Sibiryakov
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Сообщение
Dimitry Sibiryakov » 22 фев 2007, 09:57
Тогда к чему было твое упонимание ibdataset? И вообще - что-то ты не договариваешь... Покажи объявление EnCrypt.
-
qvd
- Сообщения: 27
- Зарегистрирован: 10 янв 2007, 11:52
Сообщение
qvd » 22 фев 2007, 10:02
IbDataset я упомянул на всякий случай, а объявление функции вот:
Код: Выделить всё
DECLARE EXTERNAL FUNCTION ENCRYPT
CSTRING(250)
RETURNS CSTRING(250) FREE_IT
ENTRY_POINT 'EnCrypt_' MODULE_NAME 'taxi.dll'
Сама функция работает отлично (вызывается часто из ХП).
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 22 фев 2007, 12:19
Сдаётся мне, что делаешь ты всёж-таки не то, что показываешь нам.
Такой апдейт из эксперта выполнится на ура.
Кстати, эксперт не пятилетней давности?
-
qvd
- Сообщения: 27
- Зарегистрирован: 10 янв 2007, 11:52
Сообщение
qvd » 22 фев 2007, 12:25
Нет, что показал на форуме, то и делаю, 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), а вот как явно указать серверу тип параметра? (хотя мог бы уже выполнить неявное преобразование..)
-
qvd
- Сообщения: 27
- Зарегистрирован: 10 янв 2007, 11:52
Сообщение
qvd » 22 фев 2007, 15:56
Поставил FB 2.0 - запрос прекрасно заработал!
Вернул 1.5 - блин, та-же лажа .... Почему интересно?