Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

having problems with java.sql.ResultSet

8 views
Skip to first unread message

Romeo Disca

unread,
Nov 4, 2001, 6:29:16 AM11/4/01
to
Hi there,

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();
}
}

}
-------------------------------


Mark Thornton

unread,
Nov 4, 2001, 7:39:45 AM11/4/01
to

"Romeo Disca" <romeo...@t-online.de> wrote in message
news:9s38r5$s7g$06$1...@news.t-online.com...

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."


AV

unread,
Nov 4, 2001, 11:00:52 AM11/4/01
to
At least Oracle and MySql drivers has possibilities to read
columns in any order and read more than once
(till post of Mark I was considered this as a standard).

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...

0 new messages