on 2011 Sep 30 3:26 AM
I am trying to use SQL Anywhere with Liquibase which should support it. I have encountered the following iAnywhere JDBC driver issue when trying to connect to it:
Caused by: java.sql.SQLException: [Sybase][JDBC Driver]Driver not capable at sybase.jdbc4.sqlanywhere.IDatabaseMetaData.getTablesN(Native Method) at sybase.jdbc4.sqlanywhere.IDatabaseMetaData.getTables(IDatabaseMetaData.java:720)
I have tried both with sajdbc4.jar and sajdbc.jar both seems to have this problem.
Could you please help me with this issue. Is there any other JDBC driver available? I have tried also jConnect in past but against SQL Anywhere 12 it has some issues with UTF8.
Request clarification before answering.
My guess is that Liquibase is passing in a catalog value and SA does not support catalogs. My suggestion would be to stick with the SQL Anywhere JDBC driver, but do the following:
1) create an ODBC DSN to connect to SQL Anywhere 2) Within the ODBC DSN, make sure you check the "Prevent driver not capable errors" check box. 3) Change your URL to be something like "jdbc:sqlanywhere:dsn=YourDSNFrom2Above;...
See if that gets you further.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Note for others coming back to this thread: Only versions of Liquibase 2.x have this issue. This issue is resolved in Liquibase 3.x and higher.
Another alternative to using Karim's work-around above would be to directly use the ODBC option in the JDBC URL string, via the "PreventNotCapable" option:
jdbc:sqlanywhere:uid=dba;pwd=sql;eng=demo;PreventNotCapable=y
User | Count |
---|---|
46 | |
6 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.