Форум: "Базы";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
ВнизФункция Trim в InterBase Найти похожие ветки
← →
RomanH © (2006-06-16 11:15) [0]Здраствуйте мастера.Не могу найти функцию trim в IB, может существует подобная функция.
← →
_dimka © (2006-06-16 11:30) [1]она в ib_udf, ее нужно задекларировать, точка входа IB_UDF_ltrim
← →
RomanH © (2006-06-16 11:50) [2]
> _dimka ©
Как вы сказали я задекларировалDECLARE EXTERNAL FUNCTION TRIM
CHAR(10)
RETURNS VARCHAR(10) FREE_IT
ENTRY_POINT "IB_UDF_ltrim" MODULE_NAME "ib_udf.dll"
Затем в SQL-Editore
делаю запросselect trim (doc_types.doc_extension) from doc_types
where doc_types.doc_type_id=2
Но при запуске запроса IBEXPERT пишет ошибкуInvalid token.
invalid request BLR at offset 76.
function TRIM is not defined.
module name or entrypoint could not be found.
Подскажите где моя ошибка
← →
Johnmen © (2006-06-16 11:54) [3]У тебя неверная декларация параметров. Параметры в UDF передаются по ссылке.
Читать http://www.ibase.ru/devinfo/udf_ok.htm
← →
novill © (2006-06-16 12:33) [4]Посмотрите, как записано объявление в мануале и сравните со своим.
(80 для примера взято)
DECLARE EXTERNAL FUNCTION LTRIM CSTRING(80)
RETURNS CSTRING(80) FREE_IT ENTRY_POINT "IB_UDF_ltrim" MODULE_NAME "ib_udf;
И удаляет она только лидирующие пробелы. Не путайте себя, объявите Ltrim и Rtrim.
← →
RomanH © (2006-06-16 13:05) [5]
DECLARE EXTERNAL FUNCTION RTRIM
CSTRING(80) CHARACTER SET WIN1251
RETURNS CSTRING(80) CHARACTER SET WIN1251 FREE_IT
ENTRY_POINT "IB_UDF_rtrim" MODULE_NAME "ib_udf";
Запуская хранимую процедуруREATE PROCEDURE TRIM_EXTENSION (
EXT INTEGER)
RETURNS (
EXTENSION SMALLINT)
AS
begin
select rtrim(doc_types.doc_extension) from doc_types
where doc_types.doc_type_id=:ext into :extension;
end^
Получаю ошибкуArithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Подскажите пожалуйста что делать
← →
Desdechado © (2006-06-16 13:45) [6]EXTENSION SMALLINT
а ты туда строку пхаешь, причем явно не преобразуемую в короткое целое
и вообще советую делать явные CAST, а не надеяться на неявный - ошибок будет на порядок меньше
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c