UDF и возвращаемые значения

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
relikt
Сообщения: 6
Зарегистрирован: 09 ноя 2004, 14:43

UDF и возвращаемые значения

Сообщение relikt » 09 ноя 2004, 14:54

Есть траблы, из udf функции возвращается строка с кучей пробелов в конце до объявленной длинны, как убрать пробелы?

function GetObjectValue(var BLOb: TBLOb; KeyWord: PChar): PChar; cdecl; export;

В хранимой процедуре:

select key_name,getobjectvalue(val_blob,'Item1') from objects where id=:PARENT_ID into :var1, :var2;

P.S. символ '_' смотреть как пробел, форум урезает пробелы.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 09 ноя 2004, 16:07

текст урезал, потому что никакого отношения к проблеме он не имеет. у UDF надо параметры кроме блоб декларировать как cstring, а не как char, только и всего.
Кстати, декларацию udf ты и не привел.

relikt
Сообщения: 6
Зарегистрирован: 09 ноя 2004, 14:43

Сообщение relikt » 09 ноя 2004, 16:27

DECLARE EXTERNAL FUNCTION GETOBJECTVALUE
BLOB,
CSTRING(1000)
RETURNS CSTRING(1000) FREE_IT
ENTRY_POINT 'GetObjectValue' MODULE_NAME 'BlobSearch'

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 09 ноя 2004, 17:08

гм, подозрительно это. и зря я, наверное, текст udf удалил. :) Особенно если ты входной параметр как выходной (pchar) передаешь. у тебя ведь на вход подается как раз char по умолчанию getobjectvalue(val_blob, 'Item1'), а это якобы char....

да, и чем не устраивает библа XPath? Смотри тут
http://www.ibase.ru/devinfo/xmldb.htm

это прямо то что тебе надо, только уже готовое.

relikt
Сообщения: 6
Зарегистрирован: 09 ноя 2004, 14:43

Сообщение relikt » 09 ноя 2004, 17:38

Делано из примеров.
Использовать то что предлагается, это мне скока переделовать базу, ей прст, да и тем более у меня нечто другое...

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 09 ноя 2004, 20:09

кто тебя базу заставляет переделывать... Ты саму UDF xpath смотрел? Чем она там сильно от твоей отличается? Взял бы ее за образец, и все.

relikt
Сообщения: 6
Зарегистрирован: 09 ноя 2004, 14:43

Сообщение relikt » 10 ноя 2004, 13:35

Давно это было....., конечно смотрел, и я как бы с udf не первый день, с ib 6.0 все ок было, а здесь чего то некак, если тока сделать возвращаемый параметр последним, а память будет выделять сам IB., незнаю, надо покапатся, вроде все правильно делаю.

Ответить