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

Вниз

BLOB Stream возвращает 0 размер.   Найти похожие ветки 

 
kavlad ©   (2002-09-05 20:25) [0]

Такая проблема. Создаю stream - CreateBLOBStream для чтения. Надо загнать его в байтовый массив. Но поток оказывается с 0 size"ом. Поле в базе естественно заполнено.
Помогите, пожалуйста.


 
Val ©   (2002-09-05 20:38) [1]

код?


 
kavlad ©   (2002-09-06 09:05) [2]

Код такой:
var
bytes: array of Byte;
b: Byte;

...

procedure BLOB2Bytes(ds: TIBCustomDataSet; fieldname: String);
var
i1: Integer;
stream: TStream;
begin
ds.Open;
stream := ds.CreateBlobStream(ds.FieldByName(fieldname), bmRead);
SetLength(bytes, stream.Size);
for i1 := 0 to stream.Size - 1 do
begin
stream.Read(b, 1);
bytes[i1] := b;
end;
stream.Free;
ds.Close;
outdata := bytes;
end;

В процедуру передается TIBTable.


 
Black Cat ©   (2002-09-06 09:47) [3]

А такой вариант:
Var MS:TMemoryStream;
...
MS := TMemoryStream.Create;
try
TBlobField(ds.FieldByName(fieldname)).SaveToStream(MS);
MS.Seek(soFromBeginning, 0);
...
finally
MS.Free
end


 
kavlad ©   (2002-09-06 12:08) [4]

Спасибо!
А нельзя ли как-нибудь скопировать поток в массив без цикла, или просто ускорить это копирование.


 
MBo ©   (2002-09-06 12:33) [5]

Stream.Read(bytes[0],numbytes);




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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
7-85716
иван
2002-07-17 13:15
2002.09.26
Autoexec.bat


1-85551
Демонов Е.В.
2002-09-13 14:49
2002.09.26
WM_NCPaint ????


3-85370
Igor V.
2002-09-05 06:38
2002.09.26
Проблема при выполнении хранимой (ADO)


3-85380
Andrei_
2002-09-03 23:49
2002.09.26
Как удалить дубликаты записей в .dbf?


7-85719
Страждущий
2002-07-15 12:20
2002.09.26
Ком-порт и устройства