Страница 1 из 1

родная udf не проходит...

Добавлено: 29 май 2008, 17:18
sydenis
В fb2.1 создаю новую базу:

SET SQL DIALECT 3;
SET NAMES WIN1251;

CREATE DATABASE 'C:\NewDB.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 8192
DEFAULT CHARACTER SET WIN1251;

DECLARE EXTERNAL FUNCTION ascii_char
INTEGER
RETURNS CSTRING(1) FREE_IT
ENTRY_POINT 'IB_UDF_ascii_char' MODULE_NAME 'ib_udf';

DECLARE EXTERNAL FUNCTION addYear
TIMESTAMP, INT
RETURNS TIMESTAMP
ENTRY_POINT 'addYear' MODULE_NAME 'fbudf';

получаю ошибку:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 27.
ascii_char.

Функция из fbudf подхватывается без вопросов. Обявление ascii_char взято из ..\Firebird\UDF\ib_udf.sql. Есть ещё файлик ib_udf2.sql, там она прописана как:

DECLARE EXTERNAL FUNCTION ascii_char
INTEGER NULL
RETURNS CSTRING(1) FREE_IT
ENTRY_POINT 'IB_UDF_ascii_char' MODULE_NAME 'ib_udf';

но тоже не прокатывает с той же ошибкой... где тут грабли?

Добавлено: 29 май 2008, 17:25
hvlad
ASCII_CHAR - встроена в 2.1

Если сильно надо внешняя - объявляй её в кавычках, а лучше - с другим именем

PS когда будем читать доку на инструмент ???

Добавлено: 29 май 2008, 17:38
sydenis
сенкс
просто в релизной ноте (стр. 49) про ASCII_CHAR ничего не сказано, а до Приложений я сразу добраться не успел :)
да и всё равно проблемма от этого не исчезает..
я, конечно, твоим советом воспользуюсь, но грабли-то останутся

Добавлено: 30 май 2008, 14:11
belov-evgenii
sydenis писал(а):да и всё равно проблемма от этого не исчезает..
я, конечно, твоим советом воспользуюсь, но грабли-то останутся
Ты когда ходишь (инструмент осваиваешь) - глаза разувай (доку читай). Тогда и грабли видно. А может и совсем их не будет