Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird XPath возвращает 119 символов и не больше / 25 сообщений из 29, страница 1 из 2
06.06.2018, 11:22
    #39656221
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Столкнулся со следующей проблемой:
есть в базе поле blob в нем храниться xml и у него есть атрибут, содержащий 200 символов
запрос

select xpath(xml,'./@Vid') from resource

возвращает только 119, в чем может быть проблема
FireBird 2.1
...
Рейтинг: 0 / 0
06.06.2018, 11:29
    #39656230
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Wepr,

как объявлена xpath ?
...
Рейтинг: 0 / 0
06.06.2018, 11:37
    #39656237
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
hvlad,
В ibExpert в UDPs записано следующее

DECLARE EXTERNAL FUNCTION XPATH
BLOB,
CSTRING(200),
CSTRING(150)
RETURNS PARAMETER 3
ENTRY_POINT 'XPath1' MODULE_NAME 'xpath.dll';
...
Рейтинг: 0 / 0
06.06.2018, 13:12
    #39656421
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Wepr,

дальнейшие объяснения нужны ?
...
Рейтинг: 0 / 0
06.06.2018, 13:17
    #39656431
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
hvlad,

Да почему при объявленных CSTRING(150) возвращает 119, если бы вернуло 149 то тогда было понятно
...
Рейтинг: 0 / 0
06.06.2018, 13:19
    #39656433
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Менял CSTRING(150) и на CSTRING(300) результат один и тот же
...
Рейтинг: 0 / 0
06.06.2018, 14:23
    #39656510
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Wepr,

из поданных на вход 200 символов возвращает 119 - почему бы и нет ?
Попытка вернуть 300 их них - особенно впечатляет :)
...
Рейтинг: 0 / 0
06.06.2018, 14:25
    #39656512
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Тьфу, там же блоб на входе.
После изменения декларации полный дисконнект делал ?
...
Рейтинг: 0 / 0
06.06.2018, 14:26
    #39656516
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
И что там с кодировками коннекта и блоба ?
...
Рейтинг: 0 / 0
06.06.2018, 14:39
    #39656535
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
hvlad,

Disconnect и Refresh все делал, правда средствами IBExpert, там все изменения после disconnect показываются, может как то по хитрому надо обновить. Кодировка win1251, если вы про это спрашиваете, хотя причем тут она, если значения длиной меньше 120 возвращаются нормально. Искал везде вроде, у xpath ограничений нету на длину возвращаемого значения
...
Рейтинг: 0 / 0
06.06.2018, 15:05
    #39656579
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
hvlad,

Изначально возвращаемое значение было CSTRING(120), все изменения прошли нормально, disconnect выполнял, потом проверил новые значение вступили в силу. Может ли где-то Firebird хранить старые значения и их подставлять, если название функции не изменились? При изменении вначале вызывается drop старого затем создается новый UDF
...
Рейтинг: 0 / 0
06.06.2018, 15:16
    #39656586
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Давай воспроизводимый пример
...
Рейтинг: 0 / 0
06.06.2018, 15:21
    #39656589
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Weprзначально возвращаемое значение было CSTRING(120)

Так, может, "это ж-ж-ж неспроста" и xpath изначально не умеет из данной функции возвращать
больше 119 байт?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.06.2018, 15:35
    #39656605
Граур Станислав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Dimitry SibiryakovТак, может, "это ж-ж-ж неспроста" и xpath изначально не умеет из данной функции возвращать
больше 119 байт?..


Если этот xpath из http://www.ibase.ru/files/articles/programming/xpathdll.zip
то там изначально было так:

DECLARE EXTERNAL FUNCTION XPATH
BLOB,
CSTRING(200),
CSTRING(16384)
RETURNS PARAMETER 3
ENTRY_POINT 'XPath1' MODULE_NAME 'xpath.dll';
...
Рейтинг: 0 / 0
06.06.2018, 16:34
    #39656663
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
hvlad,

Храница в поле такое значение

<params OpenChange="1" KDReplace="false" KDText="по обеспечению в сеть Интернет 1Г, продлению доменных имен и IP-адресов по контракту №0500000000500000111-0844707-01 от 16.11.17"/>

Выполняется запрос

select xpath(params,'@KDText') from contracts where cont_id=1512022

возвращается заначение

"по обеспечению в сеть Интернет 1Г, продлению доменных имен и IP-адресов по контракту №0500000000500000111-0844707-01 от"


И раз никто с таким не сталкивался, то меня гложат смутные сомнения, что виной всему библиотека xpath.dll
...
Рейтинг: 0 / 0
06.06.2018, 16:38
    #39656667
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Извиняюсь за “Храница “ , тяжело за орфографией следить и тестировать запросы одновременно
...
Рейтинг: 0 / 0
06.06.2018, 16:57
    #39656710
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
06.06.2018 16:38, Wepr пишет:
> Извиняюсь за “Храница “ , тяжело за орфографией следить и тестировать запросы одновременно

да ладно, чо уж там.

зы: надо писать "храниццО"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.06.2018, 17:20
    #39656736
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Мимопроходящий,

Захоронение значений в полях...
...
Рейтинг: 0 / 0
06.06.2018, 18:47
    #39656837
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
WeprХраница в поле такое значениеЧто вернёт
Код: sql
1.
2.
select xpath('<params OpenChange="1" KDReplace="false" KDText="по обеспечению в сеть Интернет 1Г, продлению доменных имен и IP-адресов по контракту №0500000000500000111-0844707-01 от 16.11.17"/>', '@KDText') 
  from rdb$database

?
...
Рейтинг: 0 / 0
07.06.2018, 08:28
    #39657029
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
hvlad,

Пришлось переделать UDF , поскольку мой принимал blob, результат тот же. Попробую другую dll сегодня скачать , посмотреть что будет
...
Рейтинг: 0 / 0
07.06.2018, 09:01
    #39657043
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Wepr,

Раз "переделал", значит имеешь инструменты (Delphi) и можешь подключиться отладчиком и точно выяснить кто что возвращает.
...
Рейтинг: 0 / 0
07.06.2018, 10:00
    #39657092
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
hvlad,

Я не правильно выразился я подключил вместо xpath , xpathv который принимает на вход не blob а CSTRING(1000). В общем я узнал, что данная библиотека была куплена с программой 6 лет тому назад. Hvlad поправь меня если я не прав , xpath это не поставляющаяся в комплекте dll , и каждый желающий может создать её со своим набором методов, а значит не имея исходников, заменить ее на другую dll не получится, поскольку нет гарантий наличия тех же методов?
...
Рейтинг: 0 / 0
07.06.2018, 10:09
    #39657104
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Wepr,

xpath совершенно точно не входит в состав Firebird. Какие функции импортируются БД можно по метаданным посмотреть (список UDF). Заменить одну UDF на другую без полного понимания функциональных возможностей первой не безопасно.
...
Рейтинг: 0 / 0
07.06.2018, 10:12
    #39657106
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
WeprHvlad поправь меня если я не прав , xpath это не поставляющаяся в комплекте dll
xpath это сторонее. куплено или самописное - х.з.
Насколько я в курсе, единственная xpath если и раздавалась, то без исходников. А значит ее немного страшновато использовать с теми Firebird, которые уже появились позднее. Да и разрядность у xpath скорее всего одна, 32бит.
...
Рейтинг: 0 / 0
07.06.2018, 10:51
    #39657148
Wepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird XPath возвращает 119 символов и не больше
Всем спасибо большое за помощь, я просто привык, что обычно разработчики сторонних библиотек как то именуют свои библиотеки , чтоб не путать с другими, а тут xpath.dll и пойди угадай кто его писал.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird XPath возвращает 119 символов и не больше / 25 сообщений из 29, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]