function TUIBLibrary.BlobGetSegment(var BlobHandle: IscBlobHandle; out length: Word;
    BufferLength: Cardinal; Buffer: PChar): boolean;
  var
    AStatus: ISCStatus;
  begin
    if BufferLength > High(Word) then
      BufferLength := High(Word);
  {$IFDEF UIBTHREADSAFE}
    FLIBCritSec.Enter;
    try
  {$ENDIF}
AStatus := isc_get_segment(@FStatusVector, @BlobHandle, @length, Word(BufferLength), Buffer);
  {$IFDEF UIBTHREADSAFE}
    finally
      FLIBCritSec.Leave;
    end;
  {$ENDIF}
    Result := (AStatus = 0) or (FStatusVector[1] = isc_segment);
    if not Result then
      if (FStatusVector[1] <> isc_segstr_eof) then
        CheckUIBApiCall(AStatus);
  end;

тут проверяют...

Ответить