webForumDet fria alternativet

sql-problem, ResultSet

Java

2 svar · 395 visningar · startad av orvar

Medlem sedan feb. 2001105 inlägg
Frågan#1

Tjena
Har följande kod:

  public Vector executeDbReader(String inSql, int inNumber) throws Exception {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conn = null;
    ResultSet rs = null;
    Statement stmt = null;
    Vector result = new Vector();
    try {
        String url = "jdbc:odbc:dapptst";
        conn = DriverManager.getConnection(url,namn,lös);
        stmt = conn.createStatement();
        rs = stmt.executeQuery(inSql);    
    } catch (Exception exc) {
    } finally {
        rs.close();
        stmt.close();
        conn.close();
    }     
        result.addElement(rs.getObject(0));

Koden som den ser ut nu är enbart för testsyfte för att få kontakten med Oracledatabasen att fungera. Det verkar ske en kontakt med databasen, men det blir fel när

result.addElement(rs.getObject(0));

anropas. Ser någon direkt vad som kan vara fel, eller var man bör kolla lite extra?

Tackar!

Medlem sedan juli 2001228 inlägg
#2

Du glömmer att stega fram ResultSet'et till första raden:

rs.next();

Sen kanske du bör göra allt detta innanför try, catch, finally satsen. Kommer inte riktigt ihåg nu men eventuellt stängs alltihop i finally satsen innan du gör:

result.addElement(rs.getObject(0));

som det ser ut nu.

En bra variant är också:


if(rs.next()) {
   result.addElement(rs.getObject(0));
}

mvh
phonk

Medlem sedan feb. 2001105 inlägg
#3

yep, det var att finally stänger allt för tidigt... samt att rs börjar på 1.

tackar!

267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)