TdaMetaData.GetFieldsFromDataSet: Unable to open dataset
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:
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:
This discussion has been closed.
Comments
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
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
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
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
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
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
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
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
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
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
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
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
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
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
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
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
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
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
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
- 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