Hi, I do understand that this is not a NOT a user support forum, however I hope to find some support by being pointed out in a direction by you devs about the IB and FB file format. I have an Interbase XE3 database with 'Blob not found' errors.I did retrieve the raw bytes of the original record on the data page (0x05), did a RLE-decode (https://firebirdsql.org/manual/fbint-page-5.html) and found out that the BlobId in that case is e.g.: 4C 01 00 00|EC F0 AF 00
In which 4C 01 00 00 is the RDB$RELATION_ID (332 in decimal, verified) and EC F0 AF 00 the BlobId referencing the blob stored on the blob data page.The blobs from surrounding records, that can be found, are on the same page (page type 0x0C, not a known type in FB, I know). There's also a page type 0x0B that seems to be a pointer page for the different 0x0C pages that can exist. I did scan the 0x0C page and this page exists of:- a header- for each blob an offset (2 bytes) and a length (2 bytes) reference at the upper part of the page- the real blob data and the bottom part of the page. I do understand the inner working of the 0x0C page, but can you help me out how to get from the BlobId (e.g. EC F0 AF 00) to the correct (0x0C) page?I guess FB uses some mechanism that works the same. I did check the https://firebirdsql.org/manual/fbint-page-8.html (also an other blob data page, a type used by FB) but that seems unfinished to me, Kind regards,Bert
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel