This is sort of a general comment about JDBC, ODBC and Access, but it may help
Luis as well:
Unlike many people I like Access...for some things. I especially like it for
schema prototyping and uploading data that people have entered into
spreadsheets. But using it with JDBC via Sun's JDBC-ODBC bridge is misery
defined. The ODBC drivers for Access aren't all that great to begin with, and
the bridge was never meant for prime time at all. A toy on top of junk on top of
a desktop database...
I have found some decent solutions/workarounds however. My current favorite is
RemoteDB Gateway from Nogginware (http://www.nogginware.com). This little server
costs about 60 bucks for a single user version, connects properly to ODBC
datasources, and _works_ with JDBC. There's a 30 day free trial at:
ftp://ftp.simtel.net/pub/simtelnet/win95/database/dbgate23.zip
With a little tweaking of the datatype mapping in HypersonicSQL Transfer I was
able to get Access and Hypersonic talking through RemoteDB without error. So I
guess what I'm saying is: don't use Sun's bridge, use RemoteDB or another tool
as a bridge. You'll be much happier.
Brian
Luis Arias wrote:
> Hello !
>
> As you suggested, I started looking at Dreamweaver Ultradev's generated
> code:
>
> Driver DriverrsReleaseSummaries =
> (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
> Connection ConnrsReleaseSummaries =
> DriverManager.getConnection("jdbc:odbc:scaalcoffee","","");
> PreparedStatement StatementrsReleaseSummaries =
> ConnrsReleaseSummaries.prepareCall("SELECT * FROM Franchises");
> //StatementrsReleaseSummaries.setQueryTimeout(0);
> ResultSet rsReleaseSummaries = StatementrsReleaseSummaries.executeQuery();
> boolean rsReleaseSummaries_isEmpty = !rsReleaseSummaries.next();
> boolean rsReleaseSummaries_hasData = !rsReleaseSummaries_isEmpty;
> int rsReleaseSummaries_numRows = 0;
>
> I commented out the setQueryTimeout() call (since this is apparently not
> supported by the access ODBC driver) and this took care of the error I
> mentioned in my first message. I am now having various problems with the
> query itself.
>
> If I leave "select * ..." then I end up with a column not found error:
>
> 24/06/00 09:47 defaultWebApp: Servlet error
> java.sql.SQLException: Column not found
> at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(JdbcOdbcResultSet.java:1497)
> at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1393)
> at
> /ultradev/extranet_news_7c1wwneyb.jsp._jspService(/ultradev/extranet_news_7c
> 1wwneyb.jsp.java:77) (JSP page line 125)
> at com.evermind.server.http.EvermindHttpJspPage.service(JAX)
> at com.evermind.server.http.HttpApplication.tb(JAX)
> at com.evermind.server.http.JSPServlet.service(JAX)
> at com.evermind.server.http.df.o3(JAX)
> at com.evermind.server.http.df.forward(JAX)
> at com.evermind.server.http.dm.o9(JAX, Compiled Code)
> at com.evermind.server.http.dm.o8(JAX, Compiled Code)
> at com.evermind.util.e.run(JAX, Compiled Code)
>
> If I modify it to "select PRTitle, PRDate, PRShort ..." then I get the
> followin error where the Access ODBC driver is saying that there were not
> enough parameters set in the statement (3 expected).
>
> 24/06/00 09:53 defaultWebApp: Servlet error
> java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de
> param�tres. 3 attendu.
> at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:4089)
> at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:4246)
> at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:1211)
> at
> sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedStatement.ja
> va:206)
> at
> sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQuery(JdbcOdbcPreparedStateme
> nt.java:105)
> at
> /ultradev/extranet_news_fo9nwnf94.jsp._jspService(/ultradev/extranet_news_fo
> 9nwnf94.jsp.java:36) (JSP page line 7)
> at com.evermind.server.http.EvermindHttpJspPage.service(JAX)
> at com.evermind.server.http.HttpApplication.tb(JAX)
> at com.evermind.server.http.JSPServlet.service(JAX)
> at com.evermind.server.http.df.o3(JAX)
> at com.evermind.server.http.df.forward(JAX)
> at com.evermind.server.http.dm.o9(JAX, Compiled Code)
> at com.evermind.server.http.dm.o8(JAX, Compiled Code)
> at com.evermind.util.e.run(JAX, Compiled Code)
>
> What are the requirements for the JAX layer as far as the database is
> concerned ? Do you need an "id" column in each table ? The second error is
> something strange with using the prepared statement ??
>
> Maybe you can make some sense of this. I would actually like to use some
> other database like interbase but the product comes with this tutorial
> database and I don't have the schema for it.
>
> Thanks,
>
> Luis.
>
> ----- Original Message -----
> From: "Karl Avedal" <[EMAIL PROTECTED]>
> To: "Luis Arias" <[EMAIL PROTECTED]>
> Cc: "Orion-Interest" <[EMAIL PROTECTED]>
> Sent: Friday, June 23, 2000 11:16 AM
> Subject: Re: Orion 1.0 : Problem With Access DB (Ultradev Tutorial)...
>
> > Hello Luis,
> >
> > My french isn't the best, but if I read that error message right it says
> > "Optional function/feature not installed/implemented". This could
> > possibly mean that the JDBC driver (or in this case ODBC driver) does
> > not support something in the API.
> >
> > How does your line 7 (and the surrounding lines) in your
> > /ultradev/extranet_news_b9shawe53j.jsp look?
> >
> > The stack dump does indicate a problem with setting the timeout, but
> > find out to make sure exactly what you can't do. The solution depends on
> > this.
> >
> > Regards,
> > Karl Avedal
> >
> > Luis Arias wrote:
> >
> > >
> > > Hi, I am getting the following error in orion 1.0 : 19/06/00 09:35
> > > defaultWebApp: Servlet error
> > > java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft
> > > Access]Fonction optionnelle non install�e
> > > at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:4089)
> > > at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:4246)
> > > at sun.jdbc.odbc.JdbcOdbc.SQLSetStmtOption(JdbcOdbc.java:3092)
> > > at
> > >
> sun.jdbc.odbc.JdbcOdbcStatement.setQueryTimeout(JdbcOdbcStatement.java:544)
> > >
> > > at
> > >
> /ultradev/extranet_news_b9shawe53j.jsp._jspService(/ultradev/extranet_news_b
> 9shawe53j.jsp.java:35)
> > > (JSP page line 7)
> > > at com.evermind.server.http.EvermindHttpJspPage.service(JAX)
> > > at com.evermind.server.http.HttpApplication.tb(JAX)
> > > at com.evermind.server.http.JSPServlet.service(JAX)
> > > at com.evermind.server.http.df.o3(JAX)
> > > at com.evermind.server.http.df.forward(JAX)
> > > at com.evermind.server.http.dm.o9(JAX)
> > > at com.evermind.server.http.dm.o8(JAX)
> > > at com.evermind.util.e.run(JAX) This occurs while using the
> > > Dreamweaver Ultradev tutorial. I believe the error has something to
> > > do with the query timeout. Is there any way of getting around this ?
> > > A newer odbc driver ? An orion parameter ?
> >
*************************************************************
Brian Cunningham
North Bay Data
[EMAIL PROTECTED]
415-451-4879
*************************************************************