PDA

Показать полную графическую версию : [решено] Oracle + RAW + Delphi


fossil
29-06-2012, 10:38
Здравствуйте многоуважаемые гуру!
Пишу одну программулинку по выковыриванию данных из оракла и как назло мне на встречу попалось поле с типом данных RAW, которое как раз мне и надо прочитать.

Внимание, вопрос.
Как прочитать данный тип?
Либо как конвертировать RAW в ASCII?

Спасибо

BlackEric
30-06-2012, 18:25
Тип RAW используется для хранения двоичных данных фиксированной длины. В отличие от символьных дан*ных, данные типа RAW не преобразуются из одного набора символов в другой при их передаче из одной базы данных в другую. Максимальная длина переменной RAW равна 32 767 байт. Максимальная же длина поля RAW базы данных составляет 2000 байт (255 в Огас1е7), поэтому, если размер данных превышает 2000 байт, они не могут быть введены в стол*бец RAW базы данных. Однако они могут быть введены в столбец базы данных, имеющий тип LONG RAW, максимальная длина которого состав*ляет 2 Гбайт.

Т.е. читаете как обычные бинарные данные.

Я правильно понял, что вы читаете данные из файла Oracle напрямую?

fossil
02-07-2012, 06:48
Подключаюсь как обычный клиент и читаю.
В string оно конечно же запихивается, но не читаемо.

fossil
02-07-2012, 08:33
Всем спасибо, все свободны


var
sbin:string;
shex:string
......
sbin:=UNIQuery1.FieldList.Fields[2].AsString;
SetLength(sHex, Length(sBin) * 2);
BinToHex(PChar(sBin), PChar(sHex), Length(sBin));




© OSzone.net 2001-2012