Home End User
New Blog Posts: Merging Reports - Part 1 and Part 2

Problem with 7.04 conversion

edited September 2004 in End User
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.

Comments

  • edited September 2004
    I was doing some more testing and found that I can run reports that have no
    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???
  • edited September 2004
    Actually I can get into the query designer but only to look at the tables
    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.
  • edited September 2004

    -----------------------------------------------------------
    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
  • edited September 2004
    I changed NOTHING when we upgraded. ALL of the TwwQuery components that are
    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!!!
  • edited September 2004

    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
  • edited September 2004
    When I tried to recreate the dataview I got the metacache error after I had
    selected the table and clicked next to select the fields.
  • edited September 2004

    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
  • edited September 2004
    I am using the DataDictionary and the UseTableOwnerName is set to True.

    We are running Firebird 1.5 through the BDE.

    Thank You Nard,
    Branden Johnson
  • edited September 2004

    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
  • edited September 2004
    That did it!!! - Setting UseTableOwnerName to false!

    Is the UseTableOwnerName a new property in 7.04? What is it's purpose?
    Just curious!

    Thank You Nard,
    Branden Johnson
  • edited September 2004

    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
  • edited September 2004
    I realized after I sent the post that I hadn't checked the help file yet!

    Thank you for the great support and hard work!!!
    Branden Johnson - Integrity Software Design
This discussion has been closed.