My Software has an option to archive older data to an read-only marked database which may be stored to a CD or DVD. I created a Viewer program using IBObjects that displays the data. That worked very well up to Firebird 2.0.3.
Now I moved to Firebird 2.1.1. On opening a query with TIBOQuery (IBObjects) I get following error message:
attempted update on read-only database.
I debugged the source code of IBObjects and found out that following statement is used before opening the Query:
SELECT F.RDB$FIELD_NAME F_FieldName
, F.RDB$RELATION_NAME F_RelationName
, F.RDB$DEFAULT_SOURCE F_DefaultSource
, D.RDB$DEFAULT_SOURCE D_DefaultSource
, D.RDB$FIELD_TYPE D_FieldType
FROM RDB$RELATION_FIELDS F INNER JOIN RDB$FIELDS D
ON D.RDB$FIELD_NAME = F.RDB$FIELD_SOURCE
WHERE (( F.RDB$DEFAULT_SOURCE IS NOT NULL ) OR ( D.RDB$DEFAULT_SOURCE IS NOT NULL ))
AND NOT F.RDB$RELATION_NAME STARTING WITH 'RDB$'
ORDER BY 1
I tried some combinitians and found out that follwing statement fails with that error message:
where rdb$default_source is not null)
when I change this to:
where rdb$default_source <> null)
everything works well. (I didn't knew before that this is allowed...)
I think this is a bug of Firebird 2.1