• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1487
  • Last Modified:

FireDAC connection to Firebird DB open but SQL qry doesn't recognise tables

I have a simple test application using FireDAC.  I have a TFDConnection connected to a Firebird database. I can open the connect to the database. I have a query linked to the FDCOnnection with a simple SQL statement
SELECT * FROM CUSTOMERS. When I open the query I get the error message Table unknown.
I have connected to the database using RazorSQL. I can see the tables and the data with no problem. So I know CUSTOMERS is a valid table. So why the error message?
0
Rodbach
Asked:
Rodbach
  • 6
  • 5
1 Solution
 
NickUpsonSenior Network EngineerCommented:
make the query "select count(*) from mon$transactions;" that is an internal table that must exist in any firebird database
0
 
RodbachAuthor Commented:
I tried SELECT COUNT(*) FROM mon$transactions and again it tells me it is an unknown table.
Yet if I use my original query IBExpert I don't have this problem as long as I surround the table name with double quotes.
I can query all the tables.
I also tried the double quotes in the SQL string of my query, same result. The full error message is:
[FireDAC][Phys][FB]Dynamic SQL error
SQL error code = -204
Table unknown
CUSTOMERS
At line1 column 10.

I get the same message with a change of name when I try querying mon$transactions.
0
 
NickUpsonSenior Network EngineerCommented:
what are the connection parameters in the 2 circumstances, although the message is no what I'd expect it could be a permission issue. Ensure you connect as sysdba or the database owner if different and see if that changes things
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
RodbachAuthor Commented:
Using sysdba and masterkey both with IBExpert and from my Delphi app.
I can connect using a TFDConnection but when I open the TFDQuery I get the unknown table message.
0
 
NickUpsonSenior Network EngineerCommented:
sorry, the problem seems to be the delphi end, which is not my area, the database seems fine. I would check ALL the connection parameters but thats a long shot
0
 
RodbachAuthor Commented:
Thanks for the suggestions though. I'll continue investigating. If I find out anything I'll post it here.
0
 
RodbachAuthor Commented:
I found the answer. I noticed that when checking with IBExpert the table name was 'Customers' and not 'CUSTOMERS' and that IBExpert surrounded it with double quotes. Tried that and it worked.
Not that that is mentioned in any of the notes. Nor did I see that mentioned in Cary jensen's white paper.
0
 
NickUpsonSenior Network EngineerCommented:
aaah

firebird names (tables, fields, etc) are case-insensitive by default, whatever you put its treated as the same, if you surround with quotes then it is taken as a literal and must be specified the same way whenever referenced.

sounds like you created "Customers" when you wanted to create customers or CUSTOMERS no quotes so the same thing
0
 
RodbachAuthor Commented:
Could be. I'll see if that's the case. Can't imagine why I'd create a table name with quotes though. And it was the same with every table name in the database. I'll cetainly bear that in mind from now on. Thanks for the info
0
 
NickUpsonSenior Network EngineerCommented:
if you typed it as Customer in IBExpert you may not have noticed
0
 
RodbachAuthor Commented:
Because I found a workaround that did what I wanted.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now