Author |
Message |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 2008-10-27 10:32:27
|
Leifson
Joined: 2008-10-26 16:15:25
Messages: 2
Offline
|
Hi,
I've installed the Firebird JDBC driver (JayBird) and added a connection, but when I try add a table and generate SQL statements for creating the table, I only have the option of "Generic SQL-92", and it seems that that syntax fails to execute in Firebird.
Is this expected? Should I see FireBird SQL as an option besides SQL-92 or is this something that goes beyond the information that the driver supplies?
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 2008-10-27 10:51:52
|
Jeff
SQL Power Developer
![[Avatar]](/forum/images/avatar/a4d2f0d23dcc84ce983ff9157f8b7f88.jpg)
Joined: 2007-06-27 18:31:33
Messages: 410
Offline
|
Hello,
We write the code that generates the DDL SQL statements that the forward engineering feature for each of our supported platforms.
Unfortunately, Firebird is not among our officially supported platforms (Oracle, SQL Server, MySQL, PostgreSQL), but we can take a look at the problem.
Would you be able to send us the generated SQL statement, and the error message that it gave?
|
-Jeff |
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 2008-10-27 16:45:49
|
Leifson
Joined: 2008-10-26 16:15:25
Messages: 2
Offline
|
I found the error. when I changed the datatype to one of the supported it was executed successfully.
I also tried to Compare the model with the target database, but was surprised that the "diff" SQL couldn't be generated as Generic SQL-92.
Why is that?
Are there any plans to do add support for more databases (especially Firebird) ?
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 2008-10-27 18:37:23
|
Jonathan
SQL Power Developer
Joined: 2007-01-08 15:10:32
Messages: 873
Offline
|
Hi Leifson,
I'm glad you got it working. I should warn you, though, that without explicit support for Firebird, you're likely to be fighting an uphill battle as your data model gets more complex.
Is this expected? Should I see Firebird SQL as an option besides SQL-92 or is this something that goes beyond the information that the driver supplies?
This does go beyond the information that the driver supplies, yes. The JDBC spec does specify some database metadata that we could use to get part of the way, but it's not quite enough. Plus, there is a larger problem that the spec is loosely worded and every platform has a slightly different take on exactly what information to provide.
I also tried to Compare the model with the target database, but was surprised that the "diff" SQL couldn't be generated as Generic SQL-92.
Why is that?
There are a number of use case restrictions in the Compare DM feature that we plan to ease off in an upcoming release of the Architect. Most of these restrictions were there because the Architect was not supposed to generate a DDL script that you would not be able to execute successfully against the "older" database right away. Since you can now save and/or edit the generated script and use it for any reason, this "helpful" behaviour is actually just harmful and has to be removed. It's on the to-do list.
Are there any plans to do add support for more databases (especially Firebird) ?
We're certainly not opposed to accepting contributions of support for forward engineering to new platforms, but branching out and supporting more than the current list of platforms (there are 6) is not in our immediate plans.
The more likely enhancement at this point would be for us to refactor our DDL generator so we can provide a GUI for end users to define new target platforms on their own. Right now, DDL generators are defined by a Java class which subclasses the generic (SQL92-ish) DDL generator and specifies the platform's special needs by overriding the appropriate methods. So we can't provide a "new target platform" GUI until we've changed that arrangement to not require subclassing.
Back to your original problem of actually getting forward engineering and diff scripts: you might want to consider is trying DDL generators for some of the other platforms (PostgreSQL, DB2, and SQL Server are good candidates). You may get more mileage out of one of those than the generic one.
-Jonathan
This message was edited 2 times. Last update was at 2008-10-27 18:38:45
|
|
 |
|