Microsoft Access Connection, Form Failure

Hi everyone.

Servoy 2.2.4.
Windows XP SP2
Java 1.5

I can configure a new DB Server to point to my own localhost.
The driver is ‘sun.jdbc.odbc.JdbcOdbcDriver’.

All tables are recognized.

However, an error occurs when I attempt to create a form using a table :

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Driver does not support this function [Microsoft][ODBC Driver Manager] Driver does not support this function

Now, I know from my own Java tests that some operations are not supported by the Access DatabaseMetaData. For example,

final int databaseMinorVersion = metaData.getDatabaseMinorVersion();

throws a java.lang.UnsupportedOperationException.

Now, is that the kind of thing that is going wrong when Servoy attempts to connect a form to a table ? Or, is it something else ?

Here is the stack trace:

com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Driver does not support this function [Microsoft][ODBC Driver Manager] Driver does not support
this function
at com.servoy.j2db.persistence.Server.new(Unknown Source)
at com.servoy.j2db.persistence.Server.getTable(Unknown Source)
at com.servoy.j2db.develop.z.aC(Unknown Source)
at com.servoy.j2db.develop.z.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

thanks
J

It has always been my understanding that Servoy ONLY works with JDBC-only connections and everything hinges on that. I’ve never heard of anyone using Servoy to actually use Access as the basis for a form. Sharing data yes but never really direct connections using Servoy.

What does ‘JDBC-only’ mean ?
Do you mean that if a data source supports ODBC then Servoy should not be able to connect to it ?
That means that SQL Server, Oracle and many others should be inaccessible !

If you are questioning whether I use JDBC, then the answer is ‘yes’ because:

  1. I have pure-java tests using that jdbc driver I specified, and
  2. Servoy uses the same driver to connect succssfully to Access.

As I said in my earleir post, Servoy see all of the Access tables nicely.

The question is rather which method Servoy invokes that leads to the unsupported operation exception.

J

Sorry. What I meant wasn’t that a source such as Oracle couldn’t support both ODBC and JDBC but that the driver, as I understand it, has to be JDBC only driver for Servoy to be able to do the things it does. I think the driver you are using allows a JDBC tool to ‘query’ certain things by ‘translating’ them for an ODBC driver to pass on to the ODBC source, in this case Access. I’m certainly not an authority on it but I can well imagine that you could view the tables using the driver that you describe but that using the driver to build a form in Servoy would involve all kinds of other things. I’m really basing my opinion on my memory from early Servoy days that JDBC drivers were the only way to access any source within Servoy. Thus while Oracle, SQL Server etc. allow ODBC drivers to access them, Servoy can ONLY access those databases through pure JDBC drivers. If you tried to use that same bridge driver to access Oracle with Servoy, I would bet that you would get the same problems.
I think you would run into the same problems trying to access a FileMaker file using an ODBC/JDBC driver if it existed for FM. Neither Access nor FM are SQL databases but they can both be accessed using ODBC as though they were (or Excel too for that matter). The only posts, though, I’ve ever seen on the Forum regarding Access had to do with passing data back and forth, not using Access as the basis of a Servoy form. And reading the error message you are getting would seem to support that it can’t be done.