Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Функция 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
3-1150146676
vvQuad
2006-06-13 01:11
2006.08.20
DBGrid, Query и печать


15-1153604106
Германн
2006-07-23 01:35
2006.08.20
Скушно!


4-1145854121
pheonix
2006-04-24 08:48
2006.08.20
как узнать имя пользователя под которым загружена виндовс?


15-1153550962
DillerXX
2006-07-22 10:49
2006.08.20
Второй раз пытаюсь - опять никак :(


15-1153471122
tButton
2006-07-21 12:38
2006.08.20
Мексика