"Vlad Horsun" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
>
> "Kovalenko Dmitry" ...
>>
>> > На всякий случай объясню - IBX всегда читает блоб целиком в память. Оно
>> > определяет р-р блоба с помощью isc_blob_info, выделяет память этого р-ра
>> > и читает туда блоб. Причём читает именно то кол-во байт, которое вернул
>> > isc_blob_info,
>>
>> > > Что же вы творите! Демоны!
>> >
>> > А мы-то тута при чёма ?
>> >
>> > А сам-то как - обрабатываешь ? :)
>>
>> Провайдер не свалится. Это точно на 99.9. Я на такие вещи не
>> закладывался.
>
> Вот молодец ! Я серьёзно... (без бу-га-га ;)
Чё та я не понял где должен валится IBX?
procedure ReadBlob(hBlobHandle: PISC_BLOB_HANDLE; Buffer: PChar; BlobSize:
Long);
var
CurPos: Long;
BytesRead, SegLen: UShort;
LocalBuffer: PChar;
begin
CurPos := 0;
LocalBuffer := Buffer;
SegLen := UShort(DefaultBlobSegmentSize);
while (CurPos < BlobSize) do
begin
if (CurPos + SegLen > BlobSize) then
SegLen := BlobSize - CurPos;
if not ((isc_get_segment(StatusVector, hBlobHandle, @BytesRead, SegLen,
LocalBuffer) = 0) or
(StatusVectorArray[1] = isc_segment)) then
IBDatabaseError;
Inc(LocalBuffer, BytesRead);
Inc(CurPos, BytesRead);
BytesRead := 0;
end;
end;