Wrong tablename in InternalEdit->FetchRecord

We're seeing the error 'ORA-08103 Object no longer exists' in the FetchRecord method, called by InternalEdit. The DMLQuery.Sql statement which fails is 'select * from LOOKUP_DATE where rowid= :doa_rowid' The probem is that LOOKUP_DATE is not the name of the table begin edited, but rather is name of the dataset assigned to the currently edited field's LookupDataset property. It appears we're asking TableB for a record that is in TableA. If I modify the Sql with Evaluate/Modify, there is no error. The editing is being done in a TdbGrid. ??
 
It seems the problem is with the method used the derive the table name in the getUpdatingTable method from the OracleData unit: getUpdatingTable parses the FROM statement and returns the first table found as the updating table. The problem application is a generic table viewer which builds sql at run time. The sql engine has been modified comply with this assumption.

All's well that ends well.
 
Back
Top