Firebird Documentation Index → Inside a Firebird Database → Blob Data Page - Type 0x08 - TODO |
The C code representation of a blob data page is:
struct blob_page { pag blp_header; SLONG blp_lead_page; SLONG blp_sequence; USHORT blp_length; USHORT blp_pad; SLONG blp_page[1]; };
Blp_header: The blob page starts off with a standard page header.
Blp_lead_page: Four bytes, signed. Bytes 0x10 - 0x13. This field holds the page number for the first page for this blob.
Blp_sequence: Four bytes, signed. Bytes 0x14 - 0x17. The sequence number of this page within the page range for this blob.
Blp_length: Two bytes, unsigned. Bytes 0x18 and 0x19. The length of the blob data on this page, in bytes.
Blp_pad: Two bytes, unsigned. Bytes 0x1a and 0x1b. Not used for any data, used as padding.
Blp_page: This location in the page is at byte 0x1c. It has two purposes:
An array of four byte, signed page numbers representing all the pages in this blob; or
An array of bytes making up the blob data on this page.
If the flag byte in the standard page header (pag_flags) is set to 1, this blob page contains no data but acts as a pointer page to all the other blob pages for this particular blob.
Firebird Documentation Index → Inside a Firebird Database → Blob Data Page - Type 0x08 - TODO |