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

TdaMetaData.GetFieldsFromDataSet: Unable to open dataset

edited January 2006 in General
Hi,

I have a program developped with Delphi 7 and RB 9.02 and access a Firebird
1.5 database using dbExpress. This program works very well on most pcs.
However, on some pcs, I get the following error message:
TdaMetaData.GetFieldsFromDataSet: Unable to open dataset:

Is somebody can help me about this strange problem ?

Thanks

--
G. Plante
gplante@orologic.com

Comments

  • edited January 2006
    Hi,

    This was not a known issue for RB 9.02. Are you able to determine what is
    different about the computers that get the error? I would suggest upgrading
    to RB 9.03 and then sending an email to support@digital-metaphors.com
    requesting the dbExpress patch.

    --
    Regards,

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

    Best Regards,

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

    I installed RB 9.03 with the dExpress patch as you tols me. I sent the fixed
    version of my program to my customers and it did not fix the problem.

    What is diffucult is that I cannot reproduce this problem in my office. Only
    some of my customers world wide get this strange error message. The problem
    is not intermitent. As soon as they try to print a report, they get this
    error message.

    I don't know why in this specific case, RB is not able to access the tables
    since everything work fine in the program. When the user run a report, we
    can load the report without any problem. After it, a search criteria dialog
    box is displayed according to search criteria of the report. When the user
    click "OK" to accept its search criteria and run the report, the error is
    displayed.

    This problem happed on Windows XP machines as well as on Windows 2000
    machines. We did not get complaints yet with other operating system.

    So, any information that could help me to fix it is very welcome here.

    Thank you very much.

    --
    G. Plante

  • edited January 2006
    Hi,

    If you remove the AutoSearch from the reports, do they still get the error?
    What else is different between the reports that work correctly and those
    that do not?

    --
    Regards,

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

    Best Regards,

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

    No report works at all on these specific computers. The customers get the
    same error with all reports. Some report don't have search criteria, so the
    search criteria box is not diaplayed and the same error message is displayed
    immediatly when the user try to run the report.

    Any idea ?

    Thanks!

    --
    G. Plante

  • edited January 2006
    Hi,

    Are you users able to access any tables from their Firebird db from a Delphi
    app? If you send them a simple app with data access components and a
    DBGrid, will that display correctly? ReportBuilder simply accesses the data
    given to it by these same Delphi data access components.

    Sorry, since I am unable to recreate this issue on my machine, it is very
    difficult to track down the cause. I am simply trying to single out the
    problem with trial and error.

    --
    Regards,

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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited January 2006
    I know that this kind of problems is very hard to reproduce. I'm not even
    able to reproduce it here.

    I will try to develop a small test program and I will send it to my
    customers to know if it works.

    Since most of my customers don't have this problem, I'm just trying to
    understand what could cause this problem on some specific machines only.

    What I don't understand is that the access to the database works fine
    anytime. It's just when the user try to print a report that the error
    happend. I will take a look back at the code I wrote when I call reports.

    If I find something, I will let you know.

    Thanks.

    --
    G. Plante

  • edited March 2006
    Hi again,

    I'm still having problems. Another problem is that I'm having more and more
    customers world wide that have the exact same problem. So, I have to find a
    solution very fast. Please help.

    I have made a very small test program. This test program only contains a
    TSqlConnection and a TppReport. My customers get the same error message when
    they run the test program. I even downloaded the last RB 10.01 and compiled
    the program with it and the error message is still there.

    What file could be missing on some computers so that my program cannot print
    any reports. Note that data access work fine on these pcs. Only the report
    part do not work. Since Report Builder is using the same TSqlConnection to
    access the database it should work on these pcs also.

    Another error message that my customers received when they tested my test
    program was "Operation non applicable".

    Thanks for your support about this very srange problem.

    --
    G. Plante
    gplante@orologic.com

  • edited March 2006
    Hi,

    Are you still not able to recreate this issue on you machine? Does Firebird
    contain any kind of user access rights built into the database? If so, this
    may be the cause of the problems. It is the only thing I can think of that
    would allow this to work on some machines and not others.

    --
    Regards,

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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited March 2006
    Hi again,

    Unfortunately, I'm not able to reproduce this problem on any computer here.

    No, it's not a security issue since using the same connection, my customers
    can access tables in the program. This problem occurs only when my customers
    run reports.It's very strange.

    Any other idea ?

    --
    G. Plante

  • edited March 2006
    Hi,

    If it works correctly on your machine and not on others, there must be
    something different about the setup of the other machines. Try to work
    through each setup of the machines that have the problem and see if you can
    find that difference. ReportBuilder uses very simple Delphi commands to
    access the data. As a last resort, you may need to find a way to set up a
    debug environment on one of the machines that has a problem.

    --
    Regards,

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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited March 2006
    Hi again,

    Do you have any debug/log option built in into Report Builder ?

    Also, I have made some other test programs and the customer ran it in his
    problem computer. Here are the results:

    dbx accessing Firebird 1.5 database -> Same bug
    dbx accessing Interbase 6 database -> Same bug
    IBX accessing Interbase 6 database -> The test works fine

    Is this information could help you to help me ?

    Thanks again.

    G. Plante

  • edited March 2006
    Hi,

    If possible, please send a small example that demonstrates the error on your
    customer's machines to me and I'll try to recreate it on my machine. I do
    not have Firebird installed so please send the example using DBExpress and
    Interbase.

    Send the example in .zip format to support@digital-metaphors.com.

    --
    Regards,

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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited July 2006
    Hi again,

    Each month we have at least one new customer world wide that send us a
    support request about getting the error
    TdaMetaData.GetFieldsFromDataSet: Unable to open dataset: .

    Do you know if other users of Report builder got this same error message ?

    Since we were never able to reproduce this problem here and this problem
    happend on some pcs only, we will be very happy to find what can cause this
    problem before loosing too many sales of our software.

    Thanks for any new information anybody could have about this very strange
    problem.

    Best regards,

    G. Plante

  • edited July 2006

    - see tech tip below



    - If you are using the DataDictionary component, try setting
    UseTableOwnerName to False.



    -----------------------------------------------------------

    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
    www.digital-metaphors.com


    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.