|
Technical answers from the trenches |
|
Error: "Unable to Open Table" (Interbase)
| ||||
Posted: 9 November 2002 |
||||
  |
Applies to: Paradox 7.32 and later |
|||
  |
Audience: Everyone |
|||
Question: Paradox displays an "Unable to open table" error when I try to open a table from an Interbase database. What's causing this and how do I fix it?Answer: If you're using a recent version of Interbase (or Firebird, its open-source sibling), your BDE alias is probably not using the SQL dialect of your InterBase alias. To fix it, you need to verify that:
While this sounds like a bit of work, it goes quickly and is detailed in the following sections. Verifying the problemThe easiest way to verify this as your actual problem, review the extended information provided by the Paradox Error dialog. To do this, simply try to open a table in your database and wait for Paradox to display the error message. When it appears, click the [>>] button and see if the extended details are similar to the following: Column unknown [Column name] Client SQL dialect 1 does not support reference to DATE datatype The phrase "Client SQL dialect" is the pay-off; it indicates that your BDE alias is using a different SQL dialect than your database. Note: In BDE terminology, "client" refers to any application using BDE to connect to databases, such as Paradox for Windows, dBASE for Windows, custom Delphi/C++ Builder applications, and so on. To fix the problem, you need to change the alias to support the proper dialect. Before you can do that, however, you need to verify that BDE supports the required setting. (It is not installed by default.) Verifying BDE supports Interbase SQL dialectsBefore you can specify the SQL dialect of your BDE aliases, you need to verify that BDE supports the required setting. In our experience, the easiest way to do this is with the BDE Administrator itself:
If the Definition panel contains SQLDIALECT, BDE is configured to support Interbase's SQL dialects and you can skip to the next section. If you don't find a SQLDIALECT setting, you need to add it to the Registry and re-create your existing alias with new one. (This would be a good time to record the settings of your current Interbase alias and then delete it. This would also be a good time to backup your Registry.) To add the SQLDIALECT setting to BDE:
At this point, BDE supports Interbase SQL dialects. Now you need to verify that the used to connect to your database uses the dialect assigned to your database, as discussed in the next section. Note: If you've just added the SQLDIALECT setting, you may need to delete all existing Interbase aliases and re-create them before you can use this setting in your aliases, for BDE does not refresh the settings of existing aliases. Verifying BDE Interbase aliases use the correct dialectTo verify that your BDE alias uses the correct dialect, you need to know the dialect used by your Interbase database. Here's one way to do it:
Next, verify that your BDE alias uses the correct SQL dialect:
When the dialect of your BDE alias matches the dialect of your Interbase database, you should be able to open tables with no further problems. |
|||
|
||||||||
|
Copyright © 2000-2004, techtricks.com; All Rights Reserved. Acknowledgements, Disclaimers, Terms and Conditions. |
||||||||
|
Article last updated on 11 June 2003
|
||
|
|
||
|
[- End -]
|