I tried to retrieve a field of a record twice.
The second method call fails. ( See sample source code below )
I successfully did it an other way.
My questions:
Why does this error occure? Is this a problem of the java:odbc driver?
Does anybody know?
I use an Access Database on a Win98 machine.
Output:
=====================
java.sql.SQLException: No data found
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6212)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3266)
at
sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5398)
at
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:326)
at
sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1618)
at
sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1683)
at CDatenbank.main(CDatenbank.java:53)
-------------------------------
Source Code: (look for this: // #### )
=====================
/*
* CDatenbank.java
*
* Created on 29. April 2001, 02:34
*/
import java.sql.*;
/**
*
* @author Romeo
* @version
*/
public class CDatenbank extends Object {
/** Creates new CDatenbank */
public CDatenbank() {
}
/**
* @param args the command line arguments
*/
public static void main (String args[]) {
//String uri = "jdbc:odbc:test";
String uri = "jdbc:odbc:newssystem";
String uid = "";
String pwd = "";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (Exception e) {
System.out.println("JDBC/ODBC Driver konnte nicht geladen
werden");
return;
}
Statement befehl = null;
Connection conn = null;
try {
conn = DriverManager.getConnection(uri, uid, pwd);
befehl = conn.createStatement();
}
catch (Exception e) {
System.out.println("Verbindung zu "+uri+" konnte nicht
hergestellt werden.");
}
try {
ResultSet rs = befehl.executeQuery("select * from tk_news");
while(rs.next()) {
rs.getObject("title");
// #### the next line causes the error
rs.getObject("title"); }
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
-------------------------------
The documentation of ResultSet includes the following statement:
"For maximum portability, result set columns within each row should be read
in left-to-right order, and each column should be read only once."
JdbcOdbc bridge is well known for absolute minimum
jdbc implementation. Simple workaround would be
reading ResultSet from left-to-rigth into local variables
and use these variables later...
AlexV
"Mark Thornton" <m.p.th...@ntlworld.com> wrote in message
news:mGaF7.10144$N16.1...@news11-gui.server.ntli.net...