ResultSet closed

Status
Nicht offen für weitere Antworten.

Solna

Mitglied
Hallo zusammen,

Ich habe ein Problem.
Ich arbeite mit MS Access.

Hier ist mein code:
Code:
 public void ausführen() throws Exception{
        
        Connection connAc=null;
        Statement state = null;
        ResultSet rset = null;
        
       connAc= getConnection();
       state = connAc.createStatement();
        
        int[]  art = new int[5000];
        int[] menge = new int[5000];
        String[] gr = new String[5000];
        int i=0;
        
       rset = state.executeQuery("Select * from Tabelle");
   
        while(rset.next()){
            art[i]=Integer.parseInt(rset.getObject(1).toString());
            gr[i]=rset.getObject(2).toString();
            menge[i]=Integer.parseInt(rset.getObject(3).toString());
            for(int pos=0; pos<=menge[i]; pos++){
                state.executeUpdate("Insert into Tabelle values("+
                        art[i]+","+"'"+gr[i]+"'"+","+"1)");
            }
            i++;
        }
    }
 private  static Connection getConnection() throws Exception{        
        String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        String url= "jdbc:odbc:Datenbank";
        String username="";
        String password = "";
        Class.forName(driver);
        return DriverManager.getConnection(url, username, password);
        
    }
Und nach dem Ausführen kriege ich so eine Fehlemeldung:

Exception in thread "main" java.sql.SQLException: ResultSet is closed
at sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(JdbcOdbcResultSet.java:6646)
at sun.jdbc.odbc.JdbcOdbcResultSet.next(JdbcOdbcResultSet.java:1249)

Was könnte es sein? Andere Programme laufen gut. Kann den Fehler nicht finden.
Für eine Antwort wäre ich sehr dankbar.
 

Solna

Mitglied
Danke, habe die Lösung gefunden.
!!!
Man muss einfach verschiedene Statements nutzen. So:
Code:
Statement stmt = conn.createStatement();
Statement stmt2 = conn.createStatement();
 
ResultSet rs = stmt.executeQuery(" SELECT * FROM Tabelle");
while(rs.next(){
   ...
  stmt2.executeUpdate(sql);
}
 

semi

Top Contributor
@Solna
Versteh mich jetzt bitte nicht falsch, ich mache mich jetzt nicht lustig über dich, bin aber wirklich erstaunt,
wie viele Fehler man in einem so kleinen Stück Code machen kann. :shock: :wink: Ich hoffe für dich, es ist nur eine
Schulaufgabe oder sonstwas unwichtiges.

Code:
public void ausführen() throws Exception{ #1

        Connection connAc=null;             #2
        Statement state = null;
        ResultSet rset = null;

       connAc= getConnection();
       state = connAc.createStatement();

        int[]  art = new int[5000];         #3
        int[] menge = new int[5000];
        String[] gr = new String[5000];
        int i=0;

       rset = state.executeQuery("Select * from Tabelle"); #4

        while(rset.next()){
            art[i]=Integer.parseInt(rset.getObject(1).toString()); #5
            gr[i]=rset.getObject(2).toString();
            menge[i]=Integer.parseInt(rset.getObject(3).toString());
            for(int pos=0; pos<=menge[i]; pos++){                 #6
                state.executeUpdate("Insert into Tabelle values("+  #7
                        art[i]+","+"'"+gr[i]+"'"+","+"1)");
            }
            i++;
        }
        #8
    }
  1. Umlaute in Klassen-, Attribut- und Methodennamen sind uncool.
    throws Exception ist nur noch durch throws Throwable zu topen.
  2. Initialisierung mit null, obwohl paar Zeilen weiter etwas zugewiesen wird
  3. Überflüssige Arrays, die keine ersichtliche Verwendung haben.
    Ausserdem, was passiert, wenn die Query mehr als 5000 Datensätze liefert?
  4. Select Statement, bei dem die selektierten Felder nicht benannt werden.
    Man muss auf der Datenbank nachschauen, was es überhaupt liefert.
  5. Überflüssige Konvertierung, da die Daten vermutlich bereits im korrekten
    Format vorliegen. Kann man aber nicht wissen, siehe #4
    Keine Fehlerbehandlung.
  6. Iteration mit Schleifenvariable, die nicht verwendet wird.
    Abbruchbedingung falsch, wenn Menge das ist, was es vermuten lässt.
  7. Klassischer Fall für PerparedStatement und Batch-Updates.
    Die Anführungszeichen lassen vermuten, dass die Felder in der Datenbank
    vom Typ VARCHAR sind. Wozu dann die Konvertierung in #5?
    Was wird überhaupt eingefügt? Gleiches Problem wie bei #4
  8. Kein Schliessen/Freigabe der Statements, des ResultSets oder gar
    der Connection. Keine Fehlerbehandlung. Keine Transaktion.
+ noch das Problem, das du bereits gelöst hast.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
P ResultSet closed Datenbankprogrammierung 7
A Operation not allowed after ResultSet closed Datenbankprogrammierung 13
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
Z ResultSet ist null warum? Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
C PostgreSQL ResultSet.TYPE_SCROLL_SENSITIVE setzen Datenbankprogrammierung 2
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
L Zugriff auf ein Resultset Datenbankprogrammierung 7
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
D Resultset schließen ?? Datenbankprogrammierung 5
T Oracle Resultset to Array sehr langsam. Datenbankprogrammierung 8
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
L ResultSet Datenbankprogrammierung 1
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
D MySQL ResultSet als Stream weiter geben Datenbankprogrammierung 9
M ResultSet Cachen Datenbankprogrammierung 3
R ResultSet mit "Untertabellen" Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R Resultset.last() Problem Datenbankprogrammierung 12
PaulG Leeres ResultSet initialisieren Datenbankprogrammierung 6
J Frage zu ResultSet Datenbankprogrammierung 3
J SQL ResultSet Previous Datenbankprogrammierung 10
S MySQL ResultSet in ein Array übertragen Datenbankprogrammierung 7
H PostgreSQL Objekte aus ResultSet Datenbankprogrammierung 5
O Oracle Resultset greift auf Spaltenüberschriften zu Datenbankprogrammierung 2
Kenan89 Wieso klappt das ResultSet nicht? Datenbankprogrammierung 3
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
F Derby/JavaDB Resultset in JTablemodel Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
B SQLite ResultSet is TYPE_FORWARD_ONLY Datenbankprogrammierung 5
T Exception ResultSet Datenbankprogrammierung 7
0 ResultSet in JTable Datenbankprogrammierung 14
S [SQL] ResultSet Datenbankprogrammierung 4
R ResultSet Datenbankprogrammierung 4
I Sonderbehandlung wenn ResultSet leer ist Datenbankprogrammierung 9
I Problem mit ResultSet Datenbankprogrammierung 2
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
B ResultSet wirft komische NullPointerException. Datenbankprogrammierung 3
R Detached ResultSet Datenbankprogrammierung 3
F generelle Vorgehensweise ResultSet Datenbankprogrammierung 5
S ResultSet Datenbankprogrammierung 2
A MySQL ResultSet.updateBytes schlägt fehl Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
A PostgreSQL anfängerfrage: resultset zeilenweise auslesen Datenbankprogrammierung 2
T MySQL ResultSet zurückgeben nachdem Connection geschlossen wurde? Datenbankprogrammierung 3
K Keine ResultSet bei if in StoredProcedure Datenbankprogrammierung 16
D ResultSet gibt nichts aus. Datenbankprogrammierung 3
trash ResultSet Syntax Fehler Datenbankprogrammierung 11
ARadauer JDBC ResultSet schließen? Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
J jdbc ResultSet types Datenbankprogrammierung 5
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
F ResultSet to String[] Datenbankprogrammierung 3
E ResultSet in HashMap Datenbankprogrammierung 8
K Tabelle mit resultset refreshen? Datenbankprogrammierung 4
M Problem mit ResultSet bei SQL Server 2005 Datenbankprogrammierung 6
S ResultSet in ArrayList ablegen Datenbankprogrammierung 17
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
T ResultSet initialisieren Datenbankprogrammierung 2
C kein Resultset Datenbankprogrammierung 2
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
T ResultSet-Inhalt in Arrays schreiben Datenbankprogrammierung 3
S ResultSet variabel auslesen Datenbankprogrammierung 4
D Anzahl der Elemente im ResultSet ermitteln Datenbankprogrammierung 8
A Leeres ResultSet mit H2 unter Vista Datenbankprogrammierung 3
A Warum ist mein ResultSet leer? Datenbankprogrammierung 5
Z ResultSet mit einer anderen Datenquelle Datenbankprogrammierung 7
O Spaltenname aus Resultset Datenbankprogrammierung 2
thE_29 ResultSet und doppelte Spalten Datenbankprogrammierung 4
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
E ResultSet vergisst Reihe? Datenbankprogrammierung 2
N resultset aus andere klasse übergeben Datenbankprogrammierung 3
F ResultSet refresh moeglich? Datenbankprogrammierung 3
S ResultSet enthält keine Daten Datenbankprogrammierung 2
B Geschlossenes ResultSet Datenbankprogrammierung 6
T ResultSet#next Ungültige Reihenfolge (DB2) Datenbankprogrammierung 5
T ResultSet schließen? Datenbankprogrammierung 6
S Tabelle updaten wenn ResultSet aus JDBC-Quelle Datenbankprogrammierung 2
S ResultSet Datenbankprogrammierung 6
F Filtern innerhalb eines Resultset Datenbankprogrammierung 12
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
@ Like-Klausel; NPE bzw. leeres ResultSet Datenbankprogrammierung 4
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
B No ResultSet was produced Datenbankprogrammierung 2
S ResultSet erweitern ? Datenbankprogrammierung 4
E JDBC, ForwardOnly bei ResultSet nach Uebergabe Datenbankprogrammierung 4
R ResultSet liefert oracle.sql.TIMESTAMP, aber unbrauchbar Datenbankprogrammierung 9
A Probleme mit ResultSet und getString(i) Datenbankprogrammierung 13
RaoulDuke ResultSet - Wie arbeitet sowas intern Datenbankprogrammierung 2
N Probleme mit "nur vorwärts gerichtete ResultSet" Datenbankprogrammierung 7
G Für jede SQL-Abfrage eigenes Statement und ResultSet? Datenbankprogrammierung 3
T MAX und ResultSet#next Datenbankprogrammierung 10
R ResultSet zu bestimmtem DS navigieren Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben