Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

прооблемы с blob полем   Найти похожие ветки 

 
LPal7   (2006-12-26 14:25) [0]

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


 
Elen ©   (2006-12-26 14:36) [1]


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

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


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

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


 
Desdechado ©   (2006-12-26 15:26) [3]

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

TBlobStream


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

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


var Stream: TStream

----------

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



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

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 16:04) [6]

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


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

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


 
Desdechado ©   (2006-12-26 16:21) [8]

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


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

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


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


> LPal7   (26.12.06 16:38) [9]


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

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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.296 c
2-1166773983
apot
2006-12-22 10:53
2007.01.14
serv tom RN01.DBF


1-1164018415
Clipper Chip
2006-11-20 13:26
2007.01.14
Принтер виртуальный или физический?


2-1167021252
Руслан56
2006-12-25 07:34
2007.01.14
Составление запроса


15-1167065954
kkkklal
2006-12-25 19:59
2007.01.14
Opera жрет память.


9-1141572255
VolanD666
2006-03-05 18:24
2007.01.14
Collision Detection && SpeedFactor