# MSSQL Server SELECT Abfrage funktioniert nicht



## Gast_Gerhard (28. Aug 2008)

Hallo!

Ich hätte da eine kleine Anfängerfrage:

Ich versuche mittels MS Driver for JDBC einen SQL Server 2000 anzusprechen und eine Tabelle auszulesen. Beim Ausführen des Codes bekomme ich folgende Fehlermeldung:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.

Hier meine Abfrage:



```
DatabaseConnection conn = new DatabaseConnection();
        conn.createConnection();
        
         try{ 
                  rs = conn.select("SELECT paid FROM patient");
        	
                  if(rs.next() == true ) {
                       String paid = (String) rs.getString("paid");
                       System.out.println(paid);
                  }else
                     System.out.println("Keine Einträge vorhanden!");
               }catch(SQLException e){
        	         System.out.println("Fehler!") ;
                     e.printStackTrace();
               }
```

Habe nun schon einige Foren durchgestöbert, die einzige Aussage, welche ich gefunden habe, ist die, dass das RS bereits geschlossen ist und dass versucht wird, darauf zuzugreifen. Allerdings schließe ich das RS doch nirgends?!
Hoffe ich habe genügend Angaben für die Lösung des Problems gemacht! Wenn nicht, bitte einfach sagen, welche Info's noch benötigt werden!

Vielen lieben Dank im Voraus für die Beantwortung meiner Frage!!!
Liebe Grüße 

Gerhard


----------



## SlaterB (28. Aug 2008)

in welcher deiner CodeZeilen tritt denn der Fehler auf,
gibts keinen ordentlichen Stack-Trace?


----------



## Gast_Gerhard (28. Aug 2008)

Hallo!

Danke für die schnelle Antwort!
Also der Fehler tritt anscheinend in Zeile 9 auf.

Hier der gesamte StackTrace:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.base.BaseConnection.validateClosedState(Unknown Source)
        at com.microsoft.jdbc.base.BaseStatement.validateClosedState(Unknown Source)
        at com.microsoft.jdbc.base.BaseResultSet.validateClosedState(Unknown Source)
        at com.microsoft.jdbc.base.BaseResultSet.commonFetchInitialize(Unknown Source)
        at com.microsoft.jdbc.base.BaseResultSet.next(Unknown Source)
        at DatabaseCon.BbKF.test(BbKF.java:23)
        at DatabaseCon.Test.main(Test.java:12)

Kannst du damit etwas anfangen?

Liebe Grüße
Gerhard


----------



## SlaterB (28. Aug 2008)

ich frage mich, was DatabaseConnection für eine Klasse ist und was createConnection(); so macht,

wenn das eigene Klassen sind, dann poste möglichst viel Code, auch conn.select()

---

die Fehlermeldung entsteht ja offensichtlich in
com.microsoft.jdbc.base.BaseConnection.validateClosedState(Unknown Source) 
also muss irgendwer die Connection geschlossen haben

wenn die Connection zu ist, kannst du nicht mehr aufs ResultSet zugreifen


----------



## Gast_Gerhard (28. Aug 2008)

Hallo!

Du hattest vollkommen recht!!!


```
public ResultSet select(String statement)throws  SQLException{
    	this.createConnection();
    	stmt = conn.createStatement();
        rs = stmt.executeQuery(statement);
        // this.closeConnection();
        return rs; 
    }
```

Hatte diese Zeile vollkommen übersehen!! Jetzt hab ich sie auskommentiert und siehe da: ES GEHT!!!!!
VIELEN DANK FÜR DEINE TOLLE UND RASCHE HILFE!!!!!

Liebe Grüße
Gerhard


----------

