Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768) / 18 сообщений из 18, страница 1 из 1
18.09.2018, 11:34
    #39704122
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
Есть такая возможность без написания фильтра? Или уже готовые фильтры в IBExpert? Varchar в тип 0 или 1 конвертируется без проблем, в пользовательские ошибка.
...
Рейтинг: 0 / 0
18.09.2018, 11:37
    #39704126
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
Нет.
А зачем ?
...
Рейтинг: 0 / 0
18.09.2018, 11:40
    #39704131
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
hvlad, потому как данные надо записывать в таблицу, в которой уже определен пользовательский тип blob, и эту таблицу нельзя менять. Т.е. нет возможности поставить там тип поля blob binary.
Может есть какая подробная литература по написанию фильтров? Из документации я понял только как объявить его.
...
Рейтинг: 0 / 0
18.09.2018, 12:43
    #39704170
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
afordданные надо записывать в таблицу, в которой уже определен пользовательский тип blobВ чём проблемы ? Зачем фильтры ?

afordМожет есть какая подробная литература по написанию фильтров?В доке по IB6 вроде что-то было, но так не помню
...
Рейтинг: 0 / 0
18.09.2018, 12:59
    #39704179
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
hvladВ чём проблемы ? Зачем фильтры ?
Штатные средства предполагают конвертацию между/из/в определенными типами BLOB: 0 (binary) и 1 (text).
Если я буду записывать данные в поле BLOB с неопределенным типом, например -3 (или присваивать текст, определенный BLOB) в переменную с таким типом, то получу ошибку "Filter not found to convert type 1 to type -3".
В документации об этом написано, что нужно самому писать фильтры, потом объявлять их, но без подробностей, типа смотрите в сообществах Firebird. Перерыл все что можно - скудно на фильтры в интернете.
Вот в этом то и проблемы...
...
Рейтинг: 0 / 0
18.09.2018, 13:12
    #39704189
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
afordЕсли я буду записывать данные в поле BLOB с неопределенным типом, например -3 (или присваивать текст, определенный BLOB) в переменную с таким типом, то получу ошибку "Filter not found to convert type 1 to type -3".Речь о P-SQL или о клиентском коде (ISC API) ?
...
Рейтинг: 0 / 0
18.09.2018, 13:17
    #39704196
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
afordЕсли я буду записывать данные в поле BLOB с неопределенным типом, например -3 (или
присваивать текст, определенный BLOB) в переменную с таким типом, то получу ошибку "Filter
not found to convert type 1 to type -3".

Так ты записывай сразу данные с типом -3, а не 1. В чём проблема-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.09.2018, 13:21
    #39704199
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
aford,

объясни зачем тебе потребовались пользовательские подтипы BLOB? Просто они имеют смысл только если необходимо преобразовывать формат BLOB на лету, если нет, то практически всё что не текст можно записать в binary.

З.Ы. Ни где не видел примера фильтров, разве что в исходниках FB
...
Рейтинг: 0 / 0
18.09.2018, 13:24
    #39704201
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
IB6 APIGuide
Working with Blob Data
Filtering Blob data
Writing an external Blob filter
...
Рейтинг: 0 / 0
18.09.2018, 13:26
    #39704204
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
Код: 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.
SQL> create table t1 (id int, blb blob sub_type -5);
SQL>
SQL> insert into t1 values (1, 125);
Statement failed, SQLSTATE = HY000
filter not found to convert type 1 to type -5
SQL>
SQL> insert into t1 values (1, '125');
Statement failed, SQLSTATE = HY000
filter not found to convert type 1 to type -5
SQL>
SQL> insert into t1 values (1, cast('125' as blob sub_type 0));
SQL>
SQL> insert into t1 values (2, cast(3456 as blob sub_type 0));
SQL> set blob all;
SQL> select * from t1;

          ID               BLB
============ =================
           1              81:0
==============================================================================
BLB:
125
==============================================================================
           2              81:1
==============================================================================
BLB:
3456
==============================================================================
...
Рейтинг: 0 / 0
18.09.2018, 13:35
    #39704215
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
hvladIB6 APIGuide
Working with Blob Data
Filtering Blob data
Writing an external Blob filter

уже что-то. Хорошо бы если бы примерчик кода лежал в firebird/examples
...
Рейтинг: 0 / 0
18.09.2018, 13:46
    #39704227
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
hvlad
Код: sql
1.
2.
3.
4.
5.
6.
7.
SQL> insert into t1 values (1, 125);
Statement failed, SQLSTATE = HY000
filter not found to convert type 1 to type -5
SQL>
SQL> insert into t1 values (1, '125');
Statement failed, SQLSTATE = HY000
filter not found to convert type 1 to type -5



Кстати, если со вторым случаем всё понятно, то с первым возникает вопрос почему сервер
воспринимает 125 как строку, а не как двоичное число.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.09.2018, 13:55
    #39704239
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
hvlad
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> create table t1 (id int, blb blob sub_type -5);
SQL>
SQL> insert into t1 values (1, 125);
Statement failed, SQLSTATE = HY000
filter not found to convert type 1 to type -5
SQL>
SQL> insert into t1 values (1, '125');
Statement failed, SQLSTATE = HY000
filter not found to convert type 1 to type -5
SQL>
SQL> insert into t1 values (1, cast('125' as blob sub_type 0));
SQL>
SQL> insert into t1 values (2, cast(3456 as blob sub_type 0));
SQL> set blob all;
SQL> select * from t1;



Dimitry SibiryakovТак ты записывай сразу данные с типом -3, а не 1. В чём проблема-то?


Не работает, та же самая ошибка
...
Рейтинг: 0 / 0
18.09.2018, 13:58
    #39704240
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
afordНе работает, та же самая ошибка

Что "не работает"? isql? Так он и не должен. Ты в приложении пиши блоб -3-го типа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.09.2018, 13:59
    #39704242
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
Симонов ДенисХорошо бы если бы примерчик кода лежал в firebird/examplesexamples\api\api9*.*
...
Рейтинг: 0 / 0
18.09.2018, 14:06
    #39704250
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
Dimitry SibiryakovЧто "не работает"? isql? Так он и не должен. Ты в приложении пиши блоб -3-го типа.

Пишу в редакторе IBExpert
Код: plsql
1.
insert into t1 values (cast('125' as blob sub_type 0));


в таблицу, где поле = blob sub_type -3
...
Рейтинг: 0 / 0
18.09.2018, 14:07
    #39704253
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
Даже, если быть точнее,
Код: sql
1.
insert into t1 (blb) values (cast('125' as blob sub_type 0)); 
...
Рейтинг: 0 / 0
18.09.2018, 15:08
    #39704325
aford
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768)
Правильно будет
Код: sql
1.
insert into t1 (blb) values (cast('125' as blob sub_type binary));


Всем спасибо!
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преобразовать blob (0) или blob text (1) в пользовательский blob (-1 - -32768) / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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