Help with a dialect error

I have been playing around with the new Servoy 3.5 and have run into a few errors.

  1. While trying to add columns to existing tables I get the following when the “Apply” button is clicked in data provider.
Error creating table, java.lang.UnsupportedOperationException: No add column syntax supported by Dialect
com.servoy.j2db.persistence.RepositoryException: java.lang.UnsupportedOperationException: No add column syntax supported by Dialect
java.lang.UnsupportedOperationException: No add column syntax supported by Dialect
  1. When I try to import one of the servoy example files “servoy_sample_crm” into the repository I get:
com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: ERROR: type "double" does not exist

I installed the JDBC driver “edb-jdbc14.jar” into Servoy’s driver file that came with EnterpriseDB.

Any ideas what I am doing wrong.

Windows XP
Servoy 3.5 b5
EnterpriseDB 8.1
Java 6

Have you been succesful with Servoy 3 in this setup? It sounds like a driver issue…

As you probably know EnterpriseDB is in fact PostgreSQL. Also Servoy comes with a PostgreSQL driver.
I am not sure but it might clash with it.
See what happends when you remove the PostgreSQL driver from your setup.

Hope this helps.

Well I removed the postgreSQL driver that came with Servoy (using only Enterprise’s driver in the folder) and tried importing the sample CRM. The following error occurred during import of the solution.

com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: ERROR: type "double" does not exist

I tried adding a new column to an existing solution and table. I got the same error as in the original post.

So this time, I removed the EnterpriseDB driver and used the driver that came with Servoy for PostgreSQL. I was able to successfully import the CRM example and add new columns to existing tables.

I had to change all url’s and driver paths to match postgreSQL not EnterpriseDB’s.

PostgreSQL’s
url: jdbc:postgresql://localhost:5432/servoy_repository
driver path: org.postgresql.Driver

not EnterpriseDB’s:
url: jdbc:edb://localhost:5432/servoy_repository
driver path: com.edb.Driver

Now my next question is will I be missing any options of EnterpriseDB if I don’t use their driver?

Thanks for the help.

raymanj:
Now my next question is will I be missing any options of EnterpriseDB if I don’t use their driver?

I suggest you direct that question to EnterpriseDB and also file a bugreport with them.

Hope this helps.

raymanj,

Servoy uses the database name returned by the driver to determine the dialect which specifies the database-specific sql to use.
When the db name is not recognized, we fall-back to a generic dialect that may not be correct for the specific database, especially the DDL difference are big (DML is usually quite standard)

By using a postgres jdbc url, we recognize the db as postgresql dialect.

I have added EnterpriseDB to the list of known dialects and Servoy will use the postgres-specifics when you use the edb driver.
This change is included in next beta-release of version 3.5, when it is available you should be able to use the EnterpriseDB driver again.

Rob