powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Как подключить свой BLOB-фильтр к IBExpert?
25 сообщений из 30, страница 1 из 2
Как подключить свой BLOB-фильтр к IBExpert?
    #39830538
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно, чтобы к закладкам IBExpert "As Text - ANSI", "As Hex" и так далее
[/img]
добавилась бы моя закладка с моим BLOB-фильтром.

Не смог нагуглить примеров, того как это делается. :(

Код: sql
1.
2.
3.
DECLARE FILTER show_BLOB
       INPUT_TYPE  BINARY output_type TEXT
       ENTRY_POINT 'show_BLOB' MODULE_NAME 'BLOB_Filter'


Код: pascal
1.
2.
3.
function show_BLOB(action: Word; control: PISCBlobCtl): Integer; cdecl;
...
exports show_BLOB;
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830586
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995,

когда я вас сюда направлял даже не думал что вы имеете ввиду именно это. Что-то мне подсказывает, что данные закладки с отображением BLOB не имеют никакого отношения к BLOB фильтрам
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830614
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как тогда использовать BLOB-фильтры при работе с IBExpert?
Мне нужно, чтобы BLOB-фильтр преобразовал содержимое BLOB-поля, а IBExpert как нибудь показал результат.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830647
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995,

ну вот смотрю я на ваш пример. Вижу что у вас второй строкой в блоб засунута электронная таблица OpenOffice.
BLOB фильтры могут преобразовать один набор байтов в другой набор байтов, но с отображением они никак не помогут, для этого надо само приложение расширять. Мне интересно во что же вы в своём блоб фильтре преобразовали электронную таблицу? В текст?

Сам эксперт может быть расширен с помощью IBE block в некоторых случаях, но в данном случае я сомневаюсь что данная возможность предусмотрена. Т.е. остаётся только вариант просить Александра добавить новую закладку, которая могла бы отображать ваш блоб в нужном виде.

Borland Delphi 1995
Код: sql
1.
2.
3.
DECLARE FILTER show_BLOB
       INPUT_TYPE  BINARY output_type TEXT
       ENTRY_POINT 'show_BLOB' MODULE_NAME 'BLOB_Filter'



я вообще сомневаюсь что объявление такого фильтра корректно. Объявление фильтра с уже существующими комбинациями входных и
выходных типов BLOB приведёт к ошибке. В Firebird фильтр который преобразует BINARY в текст TEXT уже встроен. Фильтры нужны если вы преобразуется свой собственный подтип blob с другой собственный или встроенный подтип, или наоборот встроенный подтип в собственный.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830657
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторвот смотрю я на ваш пример. Вижу что у вас второй строкой в блоб засунута электронная таблица OpenOffice.
Это просто первый попавшийся подходящий скриншот, а таблица у меня называется по-другому, и имеет другое содержимое.

В моей таблице - тоже есть поле BLOB, которое мне нужно как-нибудь показать, через IBExpert распаковав его содержимое.
Конкретно, полученное мною ТЗ дословно звучит:
авторНаписать BLOB-фильтр, позволяющий работать со сжатыми полями в IBExpert
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830665
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995,

тогда тебе надо написать блоб фильтр для своего пользовательского подтипа и хранить сжатые данные в пользовательском подтипе, а не в BINARY.
Если с этого типа надо извлекать текст, то нужно написать что-то вроде

Код: sql
1.
2.
3.
DECLARE FILTER show_BLOB
       INPUT_TYPE  ZIP output_type TEXT
       ENTRY_POINT 'show_BLOB' MODULE_NAME 'BLOB_Filter'



Для определение мнемоники вашего подтипа как ZIP (назови как хочешь) нужно сделать

Код: sql
1.
2.
INSERT INTO RDB$TYPES (RDB$FIELD_NAME, RDB$TYPE, RDB$TYPE_NAME)
VALUES ('RDB$FIELD_SUB_TYPE', -10, 'ZIP');



-10 это как пример. Пользовательские подтипы должны быть представлены отрицательными числами (от -1 до -32768).
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830666
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А с IBExpert это как будет работать?
Под-тип у BLOB-поля таблицы тоже надо будет менять на ZIP? А если там уже данные лежат?
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830673
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995,

ещё раз объясняю. BLOB фильтры предназначены для преобразование данных из одного подтипа BLOB в другой. BINARY изначально предназначено для того, чтобы отдавать блоб как он представлен в виде голых байтов. Не надо к нему фильтры писать. К BINARY можно привести BLOB любого подтипа без всяких фильтров.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830679
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если написать фильтр для INPUT_TYPE ZIP, то содержимое обработанное фильтром IBExepert сам автоматически покажет в закладке "As Text", или как?

И есть ли простой способ изменить подтип BLOB у поля содержащего данные?
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830763
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
- создал BLOB_Filter.dll
- закинул эту dll в папку UDF в FireBird
- добавил тип и фильтр
- создал копию поля с новым типом
Но при запуске IBExpert и попытке посмотреть это поле "As Text" - BLOB_Filter.dll не вызывается. :(
(поставил в Delphi точку останова в функции show_BLOB, но до точки останова исполнение не доходит)

Что я делаю не так?
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830841
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995,

блоб фильтры работают в сервере, а не в IBE.

Приложение может попросить сервер применить блоб фильтр при чтении\записи блоба.
Умеет ли это делать IBE - не знаю.

isql умеет просить применить блоб фильтр, преобразующий исходный блоб в текст.
Есс-но, такой фильтр должен существовать и быть известным серверу.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830937
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эксперт не умеет применять блоб-фильтры по желанию пользователя.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830944
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как вообще убедится, что dll с фильтром работает? (вне зависимости от IBExpert)
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830992
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995А как вообще убедится, что dll с фильтром работает? (вне зависимости от IBExpert)

Ну вон выше Влад пишет, что ISQL умеет применять пользовательский фильтр. Очевидно, надо попробовать выборку в ISQL.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830994
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как dll с фильтром в Delphi отлаживать?
При попытке указать firebird.exe в качестве host-application, получаю "Unable to create process: Такой запрос не поддерживается".
А если указать IBExpert, то запускается, но судя по всему dll при просмотре BLOB не вызывается.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39830998
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot IBExpert]Borland Delphi 1995выше Влад пишет, что ISQL умеет применять пользовательский фильтр. Очевидно, надо попробовать выборку в ISQL.
Мне начальник поставивший ТЗ сказал буквально следующее "подключи фильтр к FireBird, и он сам автоматический будет подменять содержимое поля BLOB при просмотре его в IBEXpert".
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831000
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27.06.2019 10:43, Borland Delphi 1995 пишет:
> Как dll с фильтром в Delphi отлаживать?

смотри в самый-самый конец статьи http://www.ibase.ru/udf_ok/
- "Примечание kdv по отладке UDF в Delphi"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831007
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий27.06.2019 10:43, Borland Delphi 1995 пишет:
> Как dll с фильтром в Delphi отлаживать?

смотри в самый-самый конец статьи http://www.ibase.ru/udf_ok/
- "Примечание kdv по отладке UDF в Delphi"

Там написано указать на fbserver.exe , но его у меня нету, указываю на firebird.exe - получаю упомянутую ошибку.
Хотя сервис FireBird я уже остановил.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831013
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995,

а опции запуска как приложения ты ему указал?
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831015
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как там и написано указал "-a" в качестве параметра.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831023
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27.06.2019 11:08, Borland Delphi 1995 пишет:
> Хотя сервис FireBird я уже остановил.

убедись что это SS, и что стартует как приложение, а не сервис.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831027
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как убедиться?
Службу я остановил, в описании firebird.exe написано "Firebird SQL Server", версия FireBird у меня третья.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831087
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995При попытке указать firebird.exe в качестве host-application, получаю "Unable to create process: Такой запрос не поддерживается".firebird небось x64, а delphi - x32 ?

PS и не забудь ему передать пар-р -a, иначе он сразу остановится.
PPS возможно, будет легче приаттачиться к запущенному как приложение firebird -a
PPPS не оффтоп ли это всё в здесь ?
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831217
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borland Delphi 1995Мне начальник поставивший ТЗ сказал буквально следующее "подключи фильтр к FireBird, и он сам автоматический будет подменять содержимое поля BLOB при просмотре его в IBEXpert".

Это он тебе ерунду сказал, ничего автоматически подменяться не будет.
Как работают блоб-фильтры можно посмотреть на выборке из RDB$PROCEDURES, например. Поле RDB$PROCEDURE_BLR имеет подтип, для которого в сервере есть встроенный блоб-фильтр. Для этого подтипа редактор блобов покажет дополнительную закладку AsBLR. И вот в ней можно увидеть результат работы блоб-фильтра.
...
Рейтинг: 0 / 0
Как подключить свой BLOB-фильтр к IBExpert?
    #39831451
Borland Delphi 1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно, я не так его понял, что он хотел бы получить.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Как подключить свой BLOB-фильтр к IBExpert?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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