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

TdaMetaCache.GetFields: unable to find table in cache

edited January 2011 in End User
Hello,

I have a working end-user reporting app written with Delphi 6 and
ReportBuilder Pro version 7.

I now am trying to upgrade the app and am using Delphi 2007 with
ReportBuilder 12.03.

I am using Firebird 1.5 as my database with IBObjects as the data access
components.

I opened the application, compiled it and run it. Existing reports will
run ok. But when I go to the data tab, I get the error
TdaMetaCache.GetFields unable to find table. . . in cache.

My DataSettings are:
database type: dtInterbase. I have tried channging to dtFirebird with
similar results.

SessionType: IBOSession
SQLType: sqSQL2

What can I do to correct this?

Thanks for your help,
Phil Horst

Comments

  • edited January 2011
    Hi Phil,

    Sorry for the late reply. Is this happening at design time or runtime? The
    metadata cache is created once DADE connects to your datasets and then is
    used to speed up the process of creating queries. If the cache is empty or
    does not contain the correct table names, DADE must be having issues
    connecting to your database.



    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited January 2011
    Hi Nico,

    Thanks for your reply.

    This happens at runtime. Any pointers regarding how to figure out the
    connection problem? It seems odd since the same application(using
    earlier versions of Delphi and Report Builder works fine.

    Phil

  • edited January 2011
    Hi Phil,

    Thanks for the information. Take a look at the following article on what
    might be causing this error and how you might fix it.

    http://www.digital-metaphors.com/rbWiki/DADE/MetaData/TdaMetaCache_Errors


    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited January 2011
    Nico,

    I had seen that article and I already had configured the Designer
    DataSettings.DatabaseName to point to the IBObjects database object.

    I am not sure how or when one might use the gMetaDataManager.Clear
    method. I tried using this just before connecting to the database.

    Nothing has helped so far.

    Thanks,
    Phil

  • edited February 2011
    Hi Phil,

    Are you using the DataDictionary?

    As a test, try tracing into the RB source and see if you can find out where
    the problem is occurring. Start in the TdaMetaData.GetFields routine in the
    daMetaData.pas file and move from there to the PopulateCacheTables routine.
    Then trace into the IBO plugin daIBO taking a look at the
    TdaIBOSession.GetTableNames routine to be sure it is actually getting a list
    of tables. If so, keep tracing to find out where the discrepancy might
    exist.



    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
This discussion has been closed.