powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Help! Снова bytea.
13 сообщений из 13, страница 1 из 1
Help! Снова bytea.
    #33949049
vitalybuliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Покажите, пожалуйста, кусочек кода (запись и чтение поля типа bytea).
У меня до сих пор не получается работать с этим типом.

Спасибо.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33949447
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе как, абстрактный код нужен? :) или какойто конкретный (Java, C, PHP or something else?)
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33949619
vitalybuliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наконец-то кто-то откликнулся. :)
Код желательно на С#.
Проблемая такая: я пишу в bytea массив байт
byte[] temp = new byte[] {1,2};
а в БД после этого вместо 2 байт вот что (\ \ 0 0 1 \ \ 0 0 2), а когда считываю
то получаю массив следующий {\,0,0,1,\,0,0,2}.
Использую EnterpriseDB.EDBClient.
Могу привести код если нужно.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33950288
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://]www.enterprisedb.com/documentation/dotnet-usingbytea.html
тут смотрел уже?
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33950339
vitalybuliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрел, он работает так как я описал выше.
Писал на форум EDB-ый, посоветовали что-то нерабочее - максимум я избавился от лишних '/'. Я бы собрал байт из 3-ёх, но когда кидаю например 200, то вместо ожидаемых 2 0 0 я получаю 3 1 1 или что-то в этом роде.
Мне просто интересно какими провайдерами вы пользуетесь и есть у вас такая проблема с bytea как у меня или нет.

Спасибо.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33950420
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пффф.

В ПХП есть функция pg_escape_bytea($data);
В данном случае $data это переданный от клиента файл. Результат ф-ции пихается в bytea.
Обратно преобразовывается pg_unescape_bytea($raw);
где $raw - то, что лежит в базе.
Ищи аналоги для C#.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33950535
vitalybuliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно уточнить сколько байт занимает файл и сколько байт получается в поле БД?

Спасибо.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33950635
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitalybuligaА можно уточнить сколько байт занимает файл и сколько байт получается в поле БД?

Спасибо.
Вечером из дома.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33950959
vitalybuliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме ненормального преобразования ничего не придумал больше :(

public static byte[] EdbByteaDencoding(string source)
{
//source = "\001,\004\301..."
string[] bytes = source.Split('\\'); // bytes[0] == String.Empty!
byte[] retBytes = new byte[bytes.Length - 1];
for (int i = 0; i < bytes.Length - 1; i++)
retBytes = Convert.ToByte(bytes[i + 1], 8);
return retBytes;
}

Если есть нормальные варианты для работы с bytea на С# - буду рад увидеть.
Спасибо.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33951634
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сходи сюда и почитай комментарии.

Про объемы - сорри, вчера до компа не добрался.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33953737
vitalybuliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Уточните, пожалуйста, при записи в поле типа bytea сколько байт на входе, и сколько байт получается в БД после записи.

Спасибо.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33954134
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot vitalybuliga]
Уточните, пожалуйста, при записи в поле типа bytea сколько байт на входе, и сколько байт получается в БД после записи.
[quot]
Файл размером 14025 байт занимает в базе 42740 байт
файл 71 байт - 260 байт
файл 40448 байт - 135141 байт.
...
Рейтинг: 0 / 0
Help! Снова bytea.
    #33955510
vitalybuliga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за исчерпывающую информацию.
Если на этом форуме можно ставить оценки я узнаю как и обязательно это сделаю :)

Ещё раз всем спасибо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Help! Снова bytea.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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