Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Unload, Export Blobspace

5 views
Skip to first unread message

Журавлев Денис

unread,
Aug 8, 2000, 3:00:00 AM8/8/00
to
Был создан blobspace

Была создана таблица
CREATE TABLE photo (
photo BYTE in "blobspace",
name TEXT in "blobspace"
) EXTENT SIZE 32 NEXT SIZE 32 LOCK MODE PAGE
Любые действия с талицей Select,Insert.. работают, но
при unload to 'c:\out.out' select * from photo
в файл c:\out.out данные из блоб полей не пишутся,
т.е. он гораздо меньшего размера чем должен быть
и при load естественно данные пропадают.
Как сделать чтобы при unloade двоичные данные
не терялись ??

Petro Petin

unread,
Aug 8, 2000, 3:00:00 AM8/8/00
to
а если блоб-поля лежат в тейблспейсе, а не в блобспейсе данные не теряются?

--

// PPA
"Журавлев Денис" <z...@chspz.ru> wrote in message
news:8mp5kc$401$1...@news.lucky.net...

Журавлев Денис

unread,
Aug 8, 2000, 3:00:00 AM8/8/00
to
Да тоже самое

"Petro Petin" <ppafo...@yahoo.com> wrote in message
news:96574577...@jet.ncc.icyb.kiev.ua...

Vasyl Shulzhenko

unread,
Aug 8, 2000, 3:00:00 AM8/8/00
to ukr.comp.dbms.informix

"Журавлев Денис" <z...@chspz.ru> wrote in message
news:8mp5kc$401$1...@news.lucky.net...
> Был создан blobspace
>
> Была создана таблица
> CREATE TABLE photo (
> photo BYTE in "blobspace",
> name TEXT in "blobspace"
> ) EXTENT SIZE 32 NEXT SIZE 32 LOCK MODE PAGE
> Любые действия с талицей Select,Insert.. работают, но
> при unload to 'c:\out.out' select * from photo
> в файл c:\out.out данные из блоб полей не пишутся,
> т.е. он гораздо меньшего размера чем должен быть
> и при load естественно данные пропадают.
> Как сделать чтобы при unloade двоичные данные
> не терялись ??

Нескромный вопрос - а ты уверен, что ты _вставил_ туда Блобы ?
Как ты их инсертил ?
Если уверен, то выгружает ли dbexport ? обычно он выгружает все корректно...

С уважением, Василий.

Журавлев Денис

unread,
Aug 9, 2000, 3:00:00 AM8/9/00
to
Тоже самое получается и с dbexport даже если поле в dbspace
Пример экспортированной таблицы :

photo00143.unl

1|FFD8FFE000104A46494600010201004800480000FFED10C6506
4A464946 = jfif == начало jpeg
но длина длина всей строки 2200 символов т.е. ~ 1000 байт
(т.к. 255 = FF (1 байт в базе ~ 2 в файле .unl))

Длина всех строк разная, т.е. при export, unload полей типа byte
Информикс IDS2000 9.20.TC1 обрезает концы записей.

Картинки insert из Delphi
Query1.Append;
Query1photo.LoadFromFile(OpenDialog.FileName);
Query1.Post;

Просматриваю select
BlobStream := TBlobStream.Create(Query1photo, bmRead);
JPEG := TJPEGImage.Create;
try
BlobStream.Position:= 0;
JPEG.LoadFromStream(BlobStream);
imgFoto.Picture.Assign(JPEG);
finally
StatusBar1.SimpleText := IntToStr(BlobStream.Size)+' b';
JPEG.Free;
BlobStream.Free;
end;

Все работает как часы.

Vasyl Shulzhenko

unread,
Aug 11, 2000, 3:00:00 AM8/11/00
to ukr.comp.dbms.informix

"Журавлев Денис" <z...@chspz.ru> wrote in message
news:8mrb61$6nd$1...@news.lucky.net...

> Тоже самое получается и с dbexport даже если поле в dbspace
> Пример экспортированной таблицы :
>
> photo00143.unl
>
> 1|FFD8FFE000104A46494600010201004800480000FFED10C6506
> 4A464946 = jfif == начало jpeg
> но длина длина всей строки 2200 символов т.е. ~ 1000 байт
> (т.к. 255 = FF (1 байт в базе ~ 2 в файле .unl))
>
> Длина всех строк разная, т.е. при export, unload полей типа byte
> Информикс IDS2000 9.20.TC1 обрезает концы записей.

[...]
Тут мне на днях некая Наташа прислала очень похожие вопросы, причем у нее
блобы обрезаются до 10К.
Я ей посоветовал обратить внимание на DBBLOBBUF, но боюсь что это не
помогло.
А никто не искал баги на эту тему на сайте Информикса ?
Дальше несколько советов на эту же тему из письма
---------------------------
[...]
Проблема может лежать на стыке нескольких проблем, например локализации,
разделитель полей и т.д.
Рекомендую почитать документацию на тему load/unload, BLOB, параметры
окружения для dbaccess
и вот это:
=============
If you are unloading files that contain BYTE, TEXT, or VARCHAR data types,
note the following information:
- BYTE items are written in hexadecimal dump format with no added
spaces or new lines. Consequently, the logical length of an unloaded
file that contains BYTE items can be very long and very difficult to
print or edit.
- Trailing blanks are retained in VARCHAR fields.
- Do not use the following characters as delimiters in the UNLOAD TO
file: 0 to 9, a to f, A to F, newline character, or backslash.
If you are unloading files that contain data types, BYTE or TEXT columns
smaller than 10 kilobytes are stored temporarily in memory. You can adjust
the 10-kilobyte setting to a larger setting with the DBBLOBBUF environment
variable. BYTE or TEXT columns larger than the default or the setting of the
DBBLOBBUF environment variable are stored in a temporary file. For
additional information about the DBBLOBBUF environment variable, see the
Informix Guide to SQL: Reference.
================
[...]
Забыл напомнить, что временные файлы создаются по пути, указанному в DBTEMP
или в \TMP .
Может у Вас там нет места или они не указаны....

P.S. Если проблему решите - дайте мне знать, чтобы на будущее пригодилось
учить слушателей :)

С уважением,
Василий Шульженко.


0 new messages