Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

прооблемы с blob полем [D7]


LPal7 ©   (2006-12-26 14:25:00) 

Добрый день.
Такая проблемка. Есть БД на Оракле. В одной из таблиц имеется поле типа Blob. Получаю значение данного поле, которое отображается в виде "|". Определяю длину строки - показывает 82. Если значение данного поля "", длина строки - 0.
Вопрос: как можно всё-таки получть значение этих самых 82-х символов?
Благодарен любым советам (только не оскорбительным :)) .


LPal7   (2006-12-26 17:03:00) [1]

Я знаю, что в конкретной строке в данном поле доллжны быть "зашифрованы" некоторые данные, в том числе и числа. Например 300, 2200, 2200, 600.....
Получу двоичный (шестнадцатиричный) код этих чисел и попробую сопоставить эти два набора бинарных символов. Авось чё нибудь и прояснится..........

В любом случае проверить это смогу только завтра, так как база и прога на работе, а я сейчас дома........


Сергей М.   (2006-12-26 16:49:00) [2]


> LPal7   (26.12.06 16:38) [9]


предположим, приведенный мной код выдал тебе в мемо следующую адракадабру:

A7
8C
09
00
FF
FF
E5
69
30
00
00
D4
44

Покажи как ты собрался определять то самое "как они группируются", что здесь есть "группы символов" и как при этом выглядит их перевод "из двоичной системы в десятеричную" ...


LPal7   (2006-12-26 16:38:00) [3]

Desdechado, толк большой. получив набор ноликов и единичек я попытаюсь определить как они группируются, и если мне это удастся смогу переводить группы символов из двоичной системы в десятеричную......


Desdechado   (2006-12-26 16:21:00) [4]

> Но как-то этот "поток байтов" просмотреть можно?
Ну, посмотрел ты на байт с кодом 0 или 1, что увидел?
Вот поэтому нефиг пхать их в мемо.
Толку от этого просмотра.


Сергей М.   (2006-12-26 16:11:00) [5]

Выкинь ее, если не используется


LPal7   (2006-12-26 16:04:00) [6]

Сергей М. спасибо за совет. Завтра обязательно попробую. Только объясни пожалуйста, зачем ты ввёл переменную i, если она нигде не используется? Или в строке while Stream.Read(b, 1) = 1 do  Memo1.Lines.Add(IntToHex(b, 2));имеет место опечатка?


Сергей М.   (2006-12-26 15:54:00) [7]

var
i: Integer;
b: Byte;
..
Stream:=Adotable1.CreateBlobStream(Adotable1.FieldByName('BStat'),bmread);
while Stream.Read(b, 1) = 1 do  Memo1.Lines.Add(IntToHex(b, 2));


LPal7   (2006-12-26 15:43:00) [8]

Я понимаю. Но как-то этот "поток байтов" просмотреть можно?
Через TBlobStream пытался. Результат такой же.
Может делаю что-то не так?


var Stream: TStream

----------

Stream:=Adotable1.CreateBlobStream(Adotable1.FieldByName('BStat'),bmread);
memo1.Lines.LoadFromStream(Stream);


Desdechado   (2006-12-26 15:26:00) [9]

поскольку блоб - типичное хранилище для бинарника, то не удивительно, что в нем не строка, а поток байтов

TBlobStream


LPal7   (2006-12-26 14:51:00) [10]

Получал разными способами:
1) через Stream
2) через FieldByName('').asVarian или AsString
результат один и тот-же


Elen   (2006-12-26 14:36:00) [11]


>  Получаю значение данного поле, которое отображается в виде
> "|"

Ну может быть ты используеш тип String и оно в него неправильно конвертит? Попробуй получить в Pchar... Как получаеш, то?


Наверх

Титульная страница Поиск, карта сайта Написать письмо