powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird 3 выборка и Блоб
45 сообщений из 45, показаны все 2 страниц
FireBird 3 выборка и Блоб
    #39034996
zholnerovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Подскажите такой вопрос: в FB 2.5 блоб не вытягивается сразу с данными выборки, а отдельным запросом. Что-нибудь в этом плане изменилось в FB 3 ?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035004
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovich,

логически он и дне должен "сразу". как вы это себе представляете? чем char/varchar от blob отличается, знаете?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035012
zholnerovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
"В отличие от всех других полей, данные BLOB поля не хранятся непосредственно в записи таблицы. В записи таблицы хранится лишь идентификатор BLOB (BLOB_ID), а само тело BLOB хранится на отдельных страницах базы данных и доступ к ним осуществляется специальными функциями IB API"

http://www.devrace.com/ru/fibplus/articles/2261.php
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035013
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Zholnerovich!
You wrote on 24 августа 2015 г. 16:58:24:

Zholnerovichwww.devrace.comнадпись на заборе.
к тому же не совсем корректна.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035017
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovich,

почти так. Ну а вы предлагаете блобы прямо в запись запихивать? 1-10-100 мб, или гиг? Блобы относятся ко "вторичной" информации. И не потому что так хранятся. А потому, что по сути они представляют собой хранилище для вторичных данных - картинок, документов, видео, музыки, сканов, и проч. Вся эта лабуда в записи при выборке не нужна.
Клиентские компоненты - да, могут вам прямо в грид вытаскивать тонны этих блобов, специально чтобы у вас сетевой трафик был повыше, и чтобы ваше приложение потребляло побольше памяти :-) Ну, чтобы тормозило, по серьезному.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035018
zholnerovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий, ну пусть даже и надпись на заборе, если у Вас есть отсылка на официальные источники по этому вопросу, то киньте ссылку
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035023
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovich,

если блоб влезает на страницу данных - он хранится на этой странице. не влезает - хранится на отдельной (или отдельных) страницах.

я никак не пойму, вы чего хотите? Осчастливить пользователей Firebird запихиванием блобов в запись?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035025
zholnerovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv, я не предлагаю ничего никуда запихивать, просто интересуюсь, так ли это на самом деле и не будет ли каких изменений с этим в ФБ3
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035035
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovich просто интересуюсь, так ли это на самом деле и не будет ли каких изменений с этим в ФБ3
да, чтобы вытащить блоб из записи надо сделать вызов api. компоненты это делают для вас относительно прозрачно.
Возникает вопрос, чем это вас не устраивает, что вы захотели изменений. В ФБ 3 с блобами все так же.
Или вы считаете, что у разработчиков Фб возникла идея хранить мегабайты блобов прямо в записях, чтобы не надо было делать "вызов API"? я вот как-то логики в вашем вопросе не улавливаю.

Это типа как спросить - "Firebird выдает данные из БД только в ответ на SQL-запрос. Будет-ли это изменено в ФБ3"?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035048
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovichтак ли это на самом деле и не будет ли каких изменений с этим в ФБ3

Это так и никаких изменений не будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035054
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovich,

я понимаю если бы ты спросил "есть улучшения в сетевом протоколе при работе с BLOB?".
Может ты это и имел ввиду?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035072
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисМожет ты это и имел ввиду?
Пофиг. Ответ тот же: ничего не изменилось. CORE-3424 по-прежнему открыт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035073
zholnerovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, я хочу просто минимизировать сетевой трафик, но при этом не увеличивать количество запросов к БД. Постараюсь поподробней описать ситуацию: при загрузке программы запрашивается таблица с данными (в основном integer, string), но есть там блоб поле с дополнительной информацией. И если попытаться сразу вытягивать информацию из блоба то получится дополнительный трафик (а таблица довольно большая). Поэтому рассматривается вариант вытягивать данные из блоба по мере надобности в процессе работы программы, но это дополнительные запросы к БД, что тоже не есть хорошо. Есть ли варианты как это можно оптимизировать? И что в этом плане предвидится в FB 3 так как планируется переход
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035075
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovichЕсть ли варианты как это можно оптимизировать?
Есть: не запрашивать данные при старте программы, а делать это по необходимости.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035077
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Zholnerovich!
You wrote on 24 августа 2015 г. 17:49:36:

Zholnerovich> вытягивать данные из блоба по мере надобности в процессе работы программы, но это дополнительные запросы к БД
это не запросы.
это вызовы API по мере необходимости.
если конечно библиотека доступа не наделена нечеловеческим н'тылэктом
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035086
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

знаю. Но так вопрос бы выглядел логичней. По крайней мере там есть что улучшать и это возможно сделают, но не то, что просит автор.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035088
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zholnerovichрассматривается вариант вытягивать данные из блоба по мере надобности в процессе работы программы, но это дополнительные запросы к БД, что тоже не есть хорошо.
блоб всегда вытягивается отдельными запросами к api. Если блоб вытягивать отдельным sql-запросом, получится в 3 приема, а не в 2. Но по сравнению с размером блоба, скорее всего эта разница ни о чем.
Ваши компоненты либо вытягивают блоб сразу, либо потом, когда вы сами к нему обращаетесь.
Так что "не есть хорошо" у вас что сразу, что потом. Потом - лучше, чем сразу. Потому что сразу нельзя понять, что нужно. А вот потом - очень даже можно выбрать только то, что нужно.

zholnerovichИ что в этом плане предвидится в FB 3 так как планируется переход
уже ведь сказали: в этом плане - ничего. Вы-то что хотите предвидеть, я не пойму? Какие-то полунамеки, мутные вопросы.
Можно было ведь сразу написать
- какие компоненты используются?
- сколько записей в этой "таблице с данными" считывается при старте программы?
- какого размера блобы хранятся в этой таблице
- когда этой программе нужны эти блобы, и в каком количестве - все сразу, конкретный блоб, или?

тут даже если вы сами на эти вопросы ответите, то вам станет ясно, что делать.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035091
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если я не ошибаюсь одно улучшение при работе с блобами в FB3 есть. Их вроде можно тягать теперь более большими кусками.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035106
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисИх вроде можно тягать теперь более большими кусками.
Использование нового API, возможно, уменьшает количество вызовов, но не количество
раунд-трипов. CORE-4245 тоже ещё открыт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035201
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zholnerovichСимонов Денис, я хочу просто минимизировать сетевой трафик, но при этом не увеличивать количество запросов к БД. Постараюсь поподробней описать ситуацию: при загрузке программы запрашивается таблица с данными (в основном integer, string), но есть там блоб поле с дополнительной информацией. И если попытаться сразу вытягивать информацию из блоба то получится дополнительный трафик (а таблица довольно большая). Поэтому рассматривается вариант вытягивать данные из блоба по мере надобности в процессе работы программы, но это дополнительные запросы к БД, что тоже не есть хорошо. Есть ли варианты как это можно оптимизировать? И что в этом плане предвидится в FB 3 так как планируется переход
Можно написать UDF или UDR-функцию, передать туда запрос + параметры, на выходе получить результат в xml или в вашем собственном формате, одним блобом. Возможно даже можно написать так, что будет быстрей работать даже если в запросе нет блобов.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035207
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

одним блобом всё можно получить и без UDR. Не о том речь.

И таки предлагать написать UDR ТСу... Сам то пробовал написать? Успешно?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035235
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисодним блобом всё можно получить и без UDR.Как?

Симонов ДенисИ таки предлагать написать UDR ТСу...Мы тут все программисты, более-менее.
Я могу написать UDF с таким функционалом. И даже точно напишу, если это будет оплачено:
Работы мне на 2-3 часа. Стоимость - 10000 (с исходниками на Delphi - 15000). Обращайтесь, кому прям очень нужно :)
Контакты тут: 17683328
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035269
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userКак?

есть такая агрегатная функция LIST

fb user,

не надо тут себя рекламировать. UDF тут могут написать почти все.

Я тебя конкретно спрашивал про UDR (внешние функции/процедуры/триггеры) которые ты упомянул. Пишутся они совершенно иначе. Хоть одну скомпилировал?

Лично я пробовал два раза хотя бы скомпилировать примеры. И пока не очень удачно. Ибо почему-то, то что содержится в include не достаточно и приходится тащить чуть ли не половину исходников FB. Не знаю может сейчас это и поправлено. Попробую ещё раз как время будет.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035398
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раздулась дискуссия из-за неверной формулировки. Изначальный вопрос был такой:

Бывают ситуации, когда данные надо хранить в бинарном потоке, в БЛОБ поле.

Бывают ситуации, когда надо сразу подгрузить на клиента несколько десятков или даже сотен записей с таким полем.

Вопрос был:

Нет ли в ФБ 3.0 флага в параметрах запроса, или в типе поля, который бы сообщил ему, что вот это БЛОБ поле
надо сразу вытащить и передать на клиента вместе со всеми данными. Чтобы потом не приходилось по сети,
по одному дергать такие поля.

На сетях с гигабитным ethernet проблем нет особых, но, когда у клиента удаленный склад подключен
через VPN канал, который идет по инет соединению через ADSL модем и латентность сети высокая, то
частые, но мелкие, обращения к серверу уже создают определенный дискомфорт.

Ответ:

на сегодняшний день такой возможности нет.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035449
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22Нет ли в ФБ 3.0 флага в параметрах запроса, или в типе поля, который бы
сообщил ему, что вот это БЛОБ поле надо сразу вытащить и передать на клиента вместе со
всеми данными.
А как ты вообще такой флаг себе представляешь? С точностью до заполнения XSQLVAR и
выделения буферов под содержимое.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035465
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

даже если бы такой флаг был сделан, то возможен он только в новом API (о чём в принципе и говорит DS), а это потребует переписать компоненты доступа
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035480
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисвозможен он только в новом API (о чём в принципе и говорит DS)
Нет, даже там с этим облом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035488
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

я и не сказал что оно есть. Но теоретически может быть. Что может помешать?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035490
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисНо теоретически может быть. Что может помешать?

Я же уже сказал: проклятый вопрос выделения буферов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035607
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ни API, ни форматы буферов менять не надо.

Указание серверу можно дать с помощью хинта (подсказки) в самом запросе.
Такая методика применяется в других серверах.

Например:

/* @@load_blob_inplace: имя_поля */
SELECT ... FROM ...

Блобы передаются в месте с выборкой и размещаются в оперативной памяти клиентской библиотеки. Обращение к ним остается таким же -- через вызовы API функций по БЛОБ ІД. Просто теперь эти вызовы не приводят к трафику по сети, а берут данные из переданного БЛОБа, сохраненного в памяти клиентской библиотеки.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035610
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Sysdba22!
You wrote on 25 августа 2015 г. 13:46:11:

Sysdba22> Ни API, ни форматы буферов менять не надо.
не люблю школьников.
даже если им за 40.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035632
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

прежде чем что-то утверждать наверное следовало бы хоть чуток знать как это устроено сейчас.

И таки что будет делать бедный 32 битный клиент если какой-то чудик запросит хотя бы 1000 строк с блобами каждый из которых занимает по 1 гигабайту?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035730
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисfb userКак?

есть такая агрегатная функция LIST
Я знаю. Но не вижу как её можно использовать.
Давайте на примере:
Код: sql
1.
select * from RDB$PROCEDURES


В табличке 10000 записей.
В каждой записи три непустых блоба, итого 30000 лишних пакетов. С пингом в 10мс получается 300 секунд (думаю на самом деле будет много хуже).

Расскажите как LIST поможет.
Как это сделать на UDF, универсально, для всех возможных запросов и параметров и типов данных, я представляю, т.к. реализовал такую функцию для трёхзвенки. Туда можно хоть EXECUTE BLOCK передать, который набор данных возвращает.

Симонов ДенисЯ тебя конкретно спрашивал про UDR (внешние функции/процедуры/триггеры) которые ты упомянул. Пишутся они совершенно иначе. Хоть одну скомпилировал?

Лично я пробовал два раза хотя бы скомпилировать примеры. И пока не очень удачно. Ибо почему-то, то что содержится в include не достаточно и приходится тащить чуть ли не половину исходников FB. Не знаю может сейчас это и поправлено. Попробую ещё раз как время будет.Я предлагаю использовать UDR, если только их можно использовать хоть для чего-то.
Вообще разницы нет что использовать, хоть UDF, хоть UDR. На скорость влиять не должно.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035737
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

можно использовать SQL.

операции слияния, преобразования в текст.


если блобы мелкие - свалить их в одно текстовое поле и вывалить клиенту.

Если блобов слишком много, они большие и ненужные, то не парить моск разработчикам, а выполнить СВОЮ работу и переделать структуру БД на удобоваримую.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035806
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

пример хреновый.
Не понимаю на хрена тебе исходный код всех 10000 процедур. Ну ладно предположим для экспорта метаданных в скрипт. Но для этого нужна инфа только из одного из блоб полей, а не из трёх. Ну если брать ещё коммент, то из двух. Ибо остальные BLOBы нужны исключительно движку.

Зафигачить всё это в один BLOB LISTом я могу, только мне лень. Там с составлением заголовка процедуры много мороки.

примерчик использования LIST

сильно упрощенно. Но понять можно. Не собирается заголовок и не учитываются зависимости. Тут по хорошему сначала надо одни хидеры процедур делать.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
CREATE PACKAGE METADATA_UTILS
AS
begin
  function ExtractScript returns blob sub_type text;
end

RECREATE PACKAGE BODY METADATA_UTILS
AS
begin
  function GetHeader(AName char(31)) returns blob sub_type text
  as
  begin
    -- ну тут дофига всего
    return 'CREATE OR ALTER PROCEDURE ' || AName || ASCII_CHAR(13) || 'AS';
  end

  procedure GetProcedures returns (OutText blob sub_type text, OutDelim varchar(10))
  as
  begin
    for
      select
        GetHeader(P.RDB$PROCEDURE_NAME) as header,
        P.RDB$PROCEDURE_SOURCE as source,
        P.RDB$DESCRIPTION as description
      from RDB$PROCEDURES P
      as cursor C
    do begin
      OutText = C.header;
      OutDelim = '^' ||  ASCII_CHAR(13) || ASCII_CHAR(13);
      suspend;
      OutText = C.source;
      OutDelim = ASCII_CHAR(13);
      suspend;
      if (OutText is not null) then
      begin
        OutText = 'COMMENT ON ''' || C.description || '''';
        OutDelim = '^' || ASCII_CHAR(13) || ASCII_CHAR(13);
        suspend;
      end
    end
  end

  function ExtractScript returns blob sub_type text
  as
  begin
    return 'SET TERM ^; ' || ASCII_CHAR(13) || ASCII_CHAR(13) ||
      (select LIST(OutText, OutDelim)
       from GetProcedures) || ASCII_CHAR(13) || ASCII_CHAR(13) || 'SET TERM ;^ ';
  end
end

select METADATA_UTILS.ExtractScript()
from rdb$database



Использовать для этого UDF, да ещё в трёхзвенке это как из пушки по воробьям. Ибо если ты делаешь трёхзвенку, то либо у тебя сервер приложений стоит на том же сервере где и СУБД, либо как минимум соединена по нормальному каналу. А уж тонкому клиенту ты можешь отдавать инфу в каком угодно виде.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035865
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

вы похоже мыслите конкретно, в то время как я предпочитаю мыслить абстрактно. Вы пишите решение для конкретного запроса, а я для всех.

И ещё. Вы не верно меня поняли. В моей трёхзвенке нет такой UDF. Но там есть то что я описал выше, т.е. реализованный универсальный алгоритм (который вполне можно заиспользовать и для UDF и для UDR, или чтобы просто результат запроса положить в строку (для любых нужд)).
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035880
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Fb User!
You wrote on 25 августа 2015 г. 17:57:48:

Fb User> В моей трёхзвенке нет такой UDF.
и трехзвенки тоже никакой нет...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035888
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

а понятно. Вы результат запроса сериализуете в XML или JSON. Ну так этому не место в UDF
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035988
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Дениса понятно. Вы результат запроса сериализуете в XML или JSON. Ну так этому не место в UDF
Не понтяно вам. Не в XML и не в JSON. В свой формат, с упором на скорость парсинга.
Чему не место в UDF?
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035993
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

любой сериализации. Legacy UDF устроены таким образом, что контекст текущего коннекта там не получить. Таким образом придётся внутри UDF делать ещё одно подключение. В общем нафиг, нафиг.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39035999
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисТаким образом придётся внутри UDF делать ещё одно подключение. В общем нафиг, нафиг.
Если бы я реализовывал, то передал бы хэндлы сессии и текущей транзакции в UDF.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39036012
MikeDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие UDF, XML и т.д.? Все делается проще:
1. добавляем calculated поле, в которое кастуем блоб если он короче некоторой величины.
2. на клиенте добавляем вычисляемое поле, которое смотрит сперва поле из п.1, а если оно null то дергает уже исходный блоб.
Изменений и в БД, и на клиенте минимум, а на каналах с большими задержками ускорение заметно невооруженным глазом, если мелких блобов в разы больше.
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39036020
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userпередал бы хэндлы сессии и текущей транзакции в UDF.
Прэлееестно...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39036177
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 26 августа 2015 г. 10:42:48:

Dimitry Sibiryakovfb user> передал бы хэндлы сессии и текущей транзакции в UDF.
> Прэлееестно...per anus ad astra!

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird 3 выборка и Блоб
    #39036186
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikeDDКакие UDF, XML и т.д.? Все делается проще:
1. добавляем calculated поле, в которое кастуем блоб если он короче некоторой величины.
2. на клиенте добавляем вычисляемое поле, которое смотрит сперва поле из п.1, а если оно null то дергает уже исходный блоб.
Изменений и в БД, и на клиенте минимум, а на каналах с большими задержками ускорение заметно невооруженным глазом, если мелких блобов в разы больше.

толково, надо будет попробовать.
...
Рейтинг: 0 / 0
45 сообщений из 45, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird 3 выборка и Блоб
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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