Read-only?
Posted: 06.11.2014, 14:19
Hello!
It's been a while since my last visit here, sorry about that.
Now, back to business, I have an application which interacts with a very old Interbase 6.0 database. Upgrading that database to any other version of Interbase or Firebird is not an option. If I recall right, Zeos 7 won't support Interbase 6, so I'm stuck with v6.6.
My app was working fine until I upgraded Zeos 6.6-patches from SVN. Now, every time I try to do a POST operation an exception is thrown, saying that "can't update a readonly field" (I insist, with the previous, really old SVN version I had before everything was working fine).
I traced the exception back to ZAbstractRODataSet. It seems that the query, which is NOT ReadOnly and involves only ONE table, is returning ReadOnly fields. So, I tried to workaround that using this two lines of code right after the dataset is made active:
... And now the exception won't be thrown BUT another one shows up, saying that "can't update this query type". This exception is thrown from TZGenericCachedResolver.DefineTableName which is placed in ZDBCGenericResolver unit.
I tried using both upper and lower cased field and table names (I had this problem before with a PostgreSQL database and I fixed it using this approach), but I still get the same error. Not only this, but NO OTHER post operation will work either. That means I can't make any changes to the app because the new version I need to release does absolutely nothing but displaying an error message.
So, please, any help would be very appreciated.
It's been a while since my last visit here, sorry about that.
Now, back to business, I have an application which interacts with a very old Interbase 6.0 database. Upgrading that database to any other version of Interbase or Firebird is not an option. If I recall right, Zeos 7 won't support Interbase 6, so I'm stuck with v6.6.
My app was working fine until I upgraded Zeos 6.6-patches from SVN. Now, every time I try to do a POST operation an exception is thrown, saying that "can't update a readonly field" (I insist, with the previous, really old SVN version I had before everything was working fine).
I traced the exception back to ZAbstractRODataSet. It seems that the query, which is NOT ReadOnly and involves only ONE table, is returning ReadOnly fields. So, I tried to workaround that using this two lines of code right after the dataset is made active:
Code: Select all
for i:=0 to dsComb.dataSet.fieldCount-1 do
dsComb.dataSet.fields[i].readOnly := false;
I tried using both upper and lower cased field and table names (I had this problem before with a PostgreSQL database and I fixed it using this approach), but I still get the same error. Not only this, but NO OTHER post operation will work either. That means I can't make any changes to the app because the new version I need to release does absolutely nothing but displaying an error message.
So, please, any help would be very appreciated.