powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ADO.NET BLOB не отображает правильно
25 сообщений из 37, страница 1 из 2
ADO.NET BLOB не отображает правильно
    #39266821
rjkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую FirebirdSql.Data.FirebirdClient.dll версии 5.0.5.0 .NET4.0 в visual studio 2010

код:

Код: c#
1.
2.
3.
4.
FbDataReader reader = SelectSQL.ExecuteReader();
...
reader.Read();
select_result = reader["INFO"].ToString();



select_result возвращает строку "System.Byte[]" для всех записей с непустым полем INFO.

В поле "INFO" типа BLOB лежит подробная информация о клиенте и она нормально отображается\читается с программы на делфи+fibPlus, firebird 2.1.4 при помощи memo компонента, а в c# в компонентах типа memo строки "System.Byte[]"

Почему не получаем значение этого поля через ADO.NET?
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39266825
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

похоже, в .net содержимое блобов считывается как-то иначе.
https://msdn.microsoft.com/ru-ru/library/87z0hy49(v=vs.110).aspx
https://support.microsoft.com/ru-ru/kb/309158
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39266898
rjkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv, ну тогда выходит что компоненты от DevExpress под .NET кривые т.к. они не правильно отображают данные BLOB в своих Memo контролах но только под Firebird, под MS SQL такого не наблюдается, кроме того их компоненты под VCL прекрасно работают?
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39266899
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь .NET - кривая поделка, ни с чем кроме MS SQL толком не работающая. Угадаешь с трёх
раз почему?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39266901
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

обращайтесь к автору .net драйвера Firebird. вдруг там что не так работает. Хотя, он сам пишет на этом драйвере разные программы, было бы что не так - давно исправил бы. Впрочем, Сибиряков вам тоже объяснил.
Можете также спросить у Дениса Симонова, который примеры делал
http://www.ibase.ru/files/articles/firebird_examples/how_to_create_application_firebird_sql_entity_framework_net_example_rus.pdf
http://www.ibase.ru/files/articles/firebird_examples/how_to_create_application_firebird_sql_entity_framework_mvc_example_rus.pdf
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39266939
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

всё там нормально работает, просто кто-то забыл вызвать метод Read у FbDataReader.

Код: c#
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.
        
static void Main(string[] args)
{
    FbConnectionStringBuilder connStrBuilder = new FbConnectionStringBuilder();
    connStrBuilder.Database = "localhost/3051:horses";
    connStrBuilder.UserID = "SYSDBA";
    connStrBuilder.Password = "masterkey";
    connStrBuilder.Charset = "WIN1251";
    using (FbConnection conn = new FbConnection(connStrBuilder.ToString()))
    {
        string sql = "SELECT CODE_HORSE, REMARK FROM HORSE WHERE REMARK IS NOT NULL FETCH FIRST 10 ROWS ONLY";
        conn.Open();
        FbCommand selectCommand = new FbCommand(sql, conn);
        FbDataReader reader = selectCommand.ExecuteReader();

        if (reader.HasRows)
        {
            while (reader.Read())
            {
                Console.WriteLine("{0}\t{1}", reader["CODE_HORSE"], reader["REMARK"]);
            }
        }
        else
        {
            Console.WriteLine("No rows found.");
        }
        reader.Close();

        Console.ReadLine();
    }
}



Здесь
Код: sql
1.
REMARK BLOB SUB_TYPE TEXT
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39266941
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

извиняюсь не заметил, что Read таки вызван. Я не знаю как там у DevExpress, не установлен он у меня, но в консоле BLOB нормально выводятся.
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39266950
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

а с бинарными блобами ToString() как работает ?
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267369
rjkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv и Денису Симонову огромное спасибо за ссылки по документации - очень нужную работу проделали и мне как начинающему ASP.NETчику очень поможет. Видел это все по кусочкам в инете - а тут в доках все вместе!!!

Код: plaintext
1.
REMARK BLOB SUB_TYPE TEXT



Да - проверил при данном типе поля все корректно читается компонентами, но у нас в базе поля "BLOB binary" и менять тип поля на BLOB SUB_TYPE TEXT мне делфийцы не разрешили - т.к. в этом случае грид в колонку с BLOB разворачивает и показывает содержимое, в случае же с "BLOB binary" грид показывает вместо содержимого особую иконку отличающую заполненные данные от пустых значений.

Так что мне делать даже и не знаю. Должно же работать и с "BLOB binary"?
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267385
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkzДолжно же работать и с "BLOB binary"?
ToString()? Не должно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267395
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkzменять тип поля на BLOB SUB_TYPE TEXT мне делфийцы не разрешили - т.к. в этом случае грид в колонку с BLOB разворачивает и показывает содержимое, в случае же с "BLOB binary" грид показывает вместо содержимого особую иконку отличающую заполненные данные от пустых значений.Повбывавбы (ц)
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267400
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Hvlad!
You wrote on 4 июля 2016 г. 15:01:35:

Hvlad> Повбывавбы (ц)я буду участвовать! (с)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267415
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

для работы с бинарными блобами используй метод GetBytes. Тут есть примерчик. Как ты потом байты в строку будешь переводить я хз.
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267425
Guest 77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что если прямо в запросе при выборке данных закастить к типу BLOB SUB_TYPE TEXT ??
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267445
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

и кстати для проверки на NULL есть метод IsDBNull
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267467
rjkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисrjkz,
для работы с бинарными блобами используй метод GetBytes. Тут есть примерчик. Как ты потом байты в строку будешь переводить я хз.

Весь вывод из BLOB и сохранение в поле с BLOB ведется при помощи компонентов от devExpress - это сделано в делфи, это я пытаюсь делать в ASP.NET. Так вот там нет никакого ручного кода, вся привязка происходит визуально - конкретно для ASP.NET - грид привязывается к SQLDataSource. В делфи такая визуальная привязка отлично работает с бинарными блобами, а вот в ASP.NET вместо значений отображается "System.Byte[]".

Косяк может быть либо в:
1. firebird ADO.NET
2. компоненты devExpress которые нормально работают с MSSQL но не хотят работать с Firebird.

???
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267477
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz2. компоненты devExpress которые нормально работают с MSSQL но не хотят работать с Firebird.

А, может, в MS SQL просто вообще нет двоичных блобов?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267495
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 4 июля 2016 г. 16:22:14:

Dimitry Sibiryakov> А, может, в MS SQL просто вообще нет двоичных блобов?..
In Transact-SQL, a BLOB is stored in an image column.
Sometimes the term BLOB is also applied to large character data values, such as those stored in text or ntext columns.

зы: это "за царя Гороха" так было. как сейчас - х.з.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267510
rjkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guest 77А что если прямо в запросе при выборке данных закастить к типу BLOB SUB_TYPE TEXT ??
Пытался c CAST - но не получилось. Пример конкретный можешь привести?

Код: java
1.
SELECT cast("INFO" as ???) "INFO" FROM "S_KLIENT"
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267520
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

ну вот пример, работает нормально, правда там подтип 2, а не 0.

Код: sql
1.
2.
SELECT CAST(RDB$PROCEDURE_BLR AS BLOB SUB_TYPE TEXT) AS TXT
FROM RDB$PROCEDURES P
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267529
rjkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267536
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

потому что построители запросов это зло. Под FB его никто не затачивал. Привыкай без мышетыкания программировать
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267538
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkz,

и таки это не удивительно. Способ поможет только для извлечения данных, но не для редактирования. А вообще выдернуть бы руки тому кто текст засовывает в бинарный БЛОБ.
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267542
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rjkzКосяк может быть либо в:
1. firebird ADO.NET


если ты считаешь что там косяк пиши об этом в трекере
...
Рейтинг: 0 / 0
ADO.NET BLOB не отображает правильно
    #39267545
rjkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, я построителями никогда и не пользуюсь - просто в студии (2010) вроде это как единственное место откуда запрос можно запустить? А для UPDATE нельзя разве тоже CAST использовать? С этим AS я на днях долбался целый час - или на CAST ругается или на AS.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ADO.NET BLOB не отображает правильно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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