Subject | Re: [firebird-support] Invalid BLOB ID |
---|---|
Author | Vlad Khorsun |
Post date | 2008-08-05T17:17:44Z |
> Hi again Vlad! I had a table in my database with just one record and all fieldsI think this database is corrupted
> set to null (also the PK) but one set to a string. I couldn't delete that
> record, because when I commit the transaction, the record re-appear. That table
> wouldn't let me backup and restore the database. So I drop that table, made aSo you still have copy of that broken database in backup folder ? Can you
> backup of the database and then a restore and now I can update fields without
> getting the "invalid blob id" message!
>
> Probably I was not clear in my previous message when I say that "I recover the
> database from a backup". I meant that I deleted the original DB and copied the
> DB file from another folder (a backup folder) to my app folder.
>
> I'm curious about all this... was my DB corrupted? How can I corrupt my DB? I'd
> like to know that because I want to know if it was my fault. Probably I'm doing
> something wrong...
run gfix -v -f on it ?
> By the way: I use IBX for my project, because I started it with IB6.5 and thenIf any client may corrupt database sending to the server wrong command, its a BUG
> migrated to FB. Can IBX damage the DB ? The project is huge... If I must to
> change the components I use, what would you suggest? Is there any tool to change
> all the IBX for the new one? Or should I make this task "by hand"
in server. Which must be fixed. I doubt IBX may corrupt database. I mean physical
level corruption, not logical. I.e. any application may insert "wrong" data (if there are no
corresponding check constraints), but this is not a physical corruption.
"Invalid blob id" error may be returned by the server because of physical corruption (i.e.
blob must be there but was not found) or because of bug in application (i.e. wrong blob_id
was passed into some Firebird API function). In the second case IBX may be a reason
but it can't really corrupt database and make it non-backupable.
Regards,
Vlad