ResultSet.last()

di il
5 risposte

ResultSet.last()

Salve nella mia tabella che ho costruito dovrei usare ResultSet.last(), ho guardato sui manuali, ma non ho trovato esempi chiari, per i database, potete aiutarmi a capire come si usa.

saluti batman

5 Risposte

  • Re: ResultSet.last()

    Ciao,

    Non mi sembra molto complicato...
    La last muove il cursore sull'ultimo record... ritorna false se non ci sono record nel resultset e genera un'eccezione di tipo SQLException se cerchi di utilizzare l'operazione su un resultset di tipo forward_only o se ha problemi d'accesso.

    Piuttosto è di uso abbastanza inconsueto... la query che passi per creare il resultset in genere può renderti un unico record o ordinarli in maniera inversa, evitandoti il lavoro di doversi posizionare sull'ultimo...

    Ciaociao
  • Re: ResultSet.last()

    Ciao ho costruito questo script ;


    public int getRowCount(){
    try {
    rsltMT.last();
    return rsltMT.getRow();
    }
    catch(SQLException e)
    { System.out.println("Error " + e);
    return 0; }
    }// ritorna il numero delle celle

    e mi da questo errore :

    Error java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY


    come posso fare, perchè altrimenti con solo
    return rsltMT.getRow();
    vedo solo le intestazioni delle colonne perche getrow() è puntato a zero

    saluti batman
  • Re: ResultSet.last()

    Ciao ho costruito questo script ;


    public int getRowCount(){
    try {
    rsltMT.last();
    return rsltMT.getRow();
    }
    catch(SQLException e)
    { System.out.println("Error " + e);
    return 0; }
    }// ritorna il numero delle celle

    e mi da questo errore :

    Error java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY


    come posso fare, perchè altrimenti con solo
    return rsltMT.getRow();
    vedo solo le intestazioni delle colonne perche getrow() è puntato a zero

    saluti batman
  • Re: ResultSet.last()

    Ciao,

    Come detto, hai un resultset forward-only, pertanto non puoi utilizzare la last... per ottenere il numero dei record però puoi aggiungere alla query, una SELECT count(*) as numRecord ed usare quel campo...

    Altrimenti evita il forward-only... non so che istruzioni usi per lo statement e la connessione al db per cui non saprei dirti perché...

    Ciaociao
  • Re: ResultSet.last()

    Ciao la query con cui mi connetto e questa :

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    connMT=DriverManager.getConnection("jdbc:odbc:;Driver={Microsoft Access Driver (*.mdb)};DBQ=db1.mdb");
    stmtMT=connMT.createStatement();
    rsltMT= stmtMT.executeQuery("SELECT * FROM archivio;");
    rsmdMT= rsltMT.getMetaData();


    quindi la riga che dovrei cambiare sarebbe questa

    rsltMT= stmtMT.executeQuery("SELECT * FROM archivio;");

    con

    rsltMT= stmtMT.executeQuery("SELECT count(*) as rs FROM archivio;");

    ed usare rs

    public int getRowCount(){
    try {

    return rs.getRow();
    }
    catch(SQLException e)
    { System.out.println("Error " + e);
    return 0; }
    }// ritorna il numero delle celle


    in questo modo

    saluti batman
Devi accedere o registrarti per scrivere nel forum
5 risposte