Problem with 7.04 conversion
We just switched to downloaded the 7.04 upgrade from 7.03. When we ran the
install and compiled the program it worked fine. The hardcoded report ran
great, but when ANY end-user report is attempted to run through the report
explorer we this error:
Project GSN.exe raised exception class EDesignError with message
'TdaMetaCache.GetFields: unable to find table INVOICE in cache.'.
Process stopped use step or run to continue.
install and compiled the program it worked fine. The hardcoded report ran
great, but when ANY end-user report is attempted to run through the report
explorer we this error:
Project GSN.exe raised exception class EDesignError with message
'TdaMetaCache.GetFields: unable to find table INVOICE in cache.'.
Process stopped use step or run to continue.
This discussion has been closed.
Comments
autosearch criteria and I can preview most of the reports in design mode and
I can preview the individual queries but I CANNOT open the query designer, I
get the error mentioned in the previous post???
and SQL tabs. If I click on any of the other tabs I get the previously
mentioned error. BUT, if I then click on the tables tab and then on one of
the others again I get :
Project GSN.exe raised exception class
EComponentError with message 'A component named FBottomList already
exists'. Process stopped. Use Step or Run to continue.
-----------------------------------------------------------
Tech Tip: Troubleshooting TdaMetache Errors
-----------------------------------------------------------
Issue
------
Running a report and/or acessing the Query tools, results in the following
error...
Error: TdaMetacache.GetFields unable to find table 'tablename' in cache"
Solution
---------
This error indicates an issue with the database connectivity settings for
either the Query tools or the report's DataViews.
The Designer's DataSettings are used to specify the database connection that
is used by the Query tools to create new queries and edit existing queries.
Once a query dataview has been created, the database connection information
is saved as part of the dataview definition.
At Delphi design-time the Designer's DataSettings are loaded/saved from
RBuilder.ini. They can be modified by accessing the File | DataSettings
dialog from the Data workspace of the Report Designer.
At run-time the TppDesigner.DataSettings values are used to specify the data
connection. The TppDesigner.AllowDataSettingsChange can be used to control
whether the DataSettings dialog is accessible from the report designer.
Digital Metaphors recommends that in all cases the database connection be
specified in the following manner.
1. Use a Database Connection component that resides on a form/datamodule.
For example, if you are using ADO, place a TADOConnection component on the
form/datamodule that contains the report.
2. Configure the Designer DataSettings DatabaseName property to reference
the Database connection component.
3. Use the Database Connection component to specify the connection
parameters for the database.
This results in the following:
Designer DataSettings --> Database Connection component
Report DataViews ---> Database Connection component
With the above configuration, the Dataview definitions will never directly
reference a database connection. This enables the Database connection
component to be modified for deployment without breaking any reports.
The new connection settings will automatically be used by all existing
reports and the query tools.
Note: The ReportBuilder Data workspace is designed to be used with only a
single database connection at any one time. To speed performance, there is a
global meta data cache that ReportBuilder uses to cache information about
the available database tables and fields. You can clear the meta data cache
using the following code.
uses
daMetaDataManager;
begin
gMetaDataManager.Clear;
end;
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
connected to the various reportbuilder tables are working just fine. The
only thing I am wondering about is that the enduser reporting solution is
located on the main form of our midiapp. Is there something in 7.04 that
may conflict with this? It worked great with 7.03!!!
RB 7.04 contains only incremental changes to fix bugs.
We are not aware of any modifications that would cause that error.
TwwQuery components are external data access components. They are not used
by the Query tools on the Data workspace. The Query tools build SQL
DataViews. The Dataview internally contains an instance of a DBPipeline,
DataSource, and TDataSet descendant.
As a test try creating loading one of the reports, delete the existing
dataviews and recreate them.
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
selected the table and clicked next to select the fields.
Are you using the DataDictionary? If so do you have UseTableOwnerName set to
True or False?
What database are you using?
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
We are running Firebird 1.5 through the BDE.
Thank You Nard,
Branden Johnson
If you have UseTableOwnerName set to True, then the DataDictionary entries
for the tablename should look like ownername.tablename. Otherwise set
UseTableOwnerName to False or modify the DataDictionary entries to include
the ownername.tablename
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Is the UseTableOwnerName a new property in 7.04? What is it's purpose?
Just curious!
Thank You Nard,
Branden Johnson
It is not new, its purpose is documented in the RBuilder.hlp file. It is
most often used with Oracle, when it is desirable to build the queries with
a fully qualified table name - Owner.TableName
RB 7.04 includes a bug fix for the case in which UseTableOwnerName is set to
True.
Evidently you had UseTableOwnerName set to true, but the table names in your
DataDictionary were not qualified with the Owner name. Due to the fix
contained in RB 7.04, this configuration no longer works. Which is the
correct behavior.
That was a tough one to track down - glad we finally solved it.
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Thank you for the great support and hard work!!!
Branden Johnson - Integrity Software Design