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

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

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

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

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

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

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

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

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

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

Так, может, "это ж-ж-ж неспроста" и xpath изначально не умеет из данной функции возвращать
больше 119 байт?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39656605
Граур Станислав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FireBird XPath возвращает 119 символов и не больше
    #39656663
Wepr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
FireBird XPath возвращает 119 символов и не больше
    #39656667
Wepr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за “Храница “ , тяжело за орфографией следить и тестировать запросы одновременно
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39656710
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
06.06.2018 16:38, Wepr пишет:
> Извиняюсь за “Храница “ , тяжело за орфографией следить и тестировать запросы одновременно

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

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

Захоронение значений в полях...
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39656837
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FireBird XPath возвращает 119 символов и не больше
    #39657029
Wepr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

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

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

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

xpath совершенно точно не входит в состав Firebird. Какие функции импортируются БД можно по метаданным посмотреть (список UDF). Заменить одну UDF на другую без полного понимания функциональных возможностей первой не безопасно.
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39657106
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WeprHvlad поправь меня если я не прав , xpath это не поставляющаяся в комплекте dll
xpath это сторонее. куплено или самописное - х.з.
Насколько я в курсе, единственная xpath если и раздавалась, то без исходников. А значит ее немного страшновато использовать с теми Firebird, которые уже появились позднее. Да и разрядность у xpath скорее всего одна, 32бит.
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39657148
Wepr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо большое за помощь, я просто привык, что обычно разработчики сторонних библиотек как то именуют свои библиотеки , чтоб не путать с другими, а тут xpath.dll и пойди угадай кто его писал.
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39657152
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по декларации и имени entrypoint, используется xpath отсюда 21473101
Она с исходниками.
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39657159
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wepr,

а по правой клавишей мыши свойства закладка подробно ничего не написано?
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39657192
Wepr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad Переписывать исходники проблематично, поскольку я не знаю, какие еще методы добелены в dll и их реализация, например xpathv. Буду пытаться узнавать, откуда библиотека, если не удастся найти концы, то вытащу xml из базы и уже в программе буду работать с ним.


Симонов Денис,

Нет там полезной информации не было о поставщике
...
Рейтинг: 0 / 0
FireBird XPath возвращает 119 символов и не больше
    #39664710
Flashpoke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Weprhvlad,
Пришлось переделать UDF , поскольку мой принимал blob, результат тот же. Попробую другую dll сегодня скачать , посмотреть что будетВозникает вопрос, где и как ты смотришь возвращаемый результат.
На Firebird 2.5 Embedded и с бинарником xpath.dll, взятым по ссылке, у меня возвращается корректный результат на запросе:
Код: sql
1.
2.
3.
SELECT
    XPATH(CAST('<params OpenChange="1" KDReplace="false" KDText="по обеспечению в сеть Интернет 1Г, продлению доменных имен и IP-адресов по контракту №0500000000500000111-0844707-01 от 16.11.17"/>' AS BLOB SUB_TYPE TEXT), '@KDText')
FROM RDB$DATABASE
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird XPath возвращает 119 символов и не больше
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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