> "Константин" ...

> Читал статью http://ibase.ru/devinfo/udf_ok.htm раздел блобы
>
>
> TBLOb = record
>   GetSegment: function(Handle: Pointer; Buffer: PChar; MaxLength: Long; var
ReadLength: Long): WordBool; cdecl;
>   Handle: Pointer; // BLOb handle
>   SegCount, // Number of BLOb segments
>   MaxSegLength, // Max length of BLOb segment
>   TotalLength: Long; // Total BLOb length
>   PutSegment: procedure(Handle: Pointer; Buffer: PChar; Length: Long);
cdecl;
>   // Seek: function: Long; cdecl; // Я не знаю входные параметры...
>
> Именно последняя строчка мне очень нужна :(

ibase.h :

/* This enum applies to parameter "mode" in blob_lseek */
enum blob_lseek_mode {blb_seek_relative = 1, blb_seek_from_tail = 2};

typedef struct blobcallback {
    short (*blob_get_segment)
        (void* hnd, ISC_UCHAR* buffer, ISC_USHORT buf_size, ISC_USHORT*
result_len);

    void* blob_handle;
    ISC_LONG blob_number_segments;
    ISC_LONG blob_max_segment;
    ISC_LONG blob_total_length;

    void (*blob_put_segment)
        (void* hnd, const ISC_UCHAR* buffer, ISC_USHORT buf_size);

    ISC_LONG (*blob_lseek)
        (void* hnd, ISC_USHORT mode, ISC_LONG offset);
} *BLOBCALLBACK;


> Необходимо создать набор UDF для быстрой работы с массивом Int64 ...
> Как всегда надо было сделать ещё вчера ... :(
>
> И как раз эта функция очень нужна ...
> Насколько я путаю именно после вызова этой функции "Курсор"
> переместится по BLOB и функции GetSegment или PutSegment,
> след. за ней, считает именно начиная с этого места BLOB ?

    Только GetSegment. Seek во временных блобах (а только в них
можно писать) не реализован.

-- 
Хорсун Влад


Ответить