Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    390

    Vector e accesso ai dati

    Salve a tutti. spiego subito il mio problema:
    vado ad inserire all'interno di un Vector i dati provenienti da una query sql, in questo modo:

    codice:
       public Vector eseguiQuery(String query) {
          Vector v = null;
          String [] record;
          int colonne = 0;
          try {
             Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query
             ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
             v = new Vector();
             ResultSetMetaData rsmd = rs.getMetaData();
             colonne = rsmd.getColumnCount();
    
             while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
                record = new String[colonne];
                for (int i=0; i<colonne; i++) {
                 record[i] = rs.getString(i+1);
                //System.out.println(record[i]);
                }
                v.add( (String[]) record.clone() );
             }
             rs.close();
             stmt.close();
          } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
    
          return v;
       }
    Non riesco però a visualizzare i dati di V. se faccio

    System.out.println(db.eseguiQuery("select * from tesina").get(0));
    ottengo
    [Ljava.lang.String;@1f78ef1.

    facendo il casting con

    System.out.println((String)db.eseguiQuery("select * from tesina").get(0));
    non ottengo nulla

    chi può illuminarmi????
    Date a Cesare quel che è di Cesare,
    tutto il resto a me!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: Vector e accesso ai dati

    Originariamente inviato da dmitraco
    Salve a tutti. spiego subito il mio problema:
    vado ad inserire all'interno di un Vector i dati provenienti da una query sql, in questo modo:

    codice:
       public Vector eseguiQuery(String query) {
          Vector v = null;
          String [] record;
          int colonne = 0;
          try {
             Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query
             ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
             v = new Vector();
             ResultSetMetaData rsmd = rs.getMetaData();
             colonne = rsmd.getColumnCount();
    
             while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
                record = new String[colonne];
                for (int i=0; i<colonne; i++) {
                 record[i] = rs.getString(i+1);
                //System.out.println(record[i]);
                }
                v.add( (String[]) record.clone() );
             }
             rs.close();
             stmt.close();
          } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
    
          return v;
       }
    Non riesco però a visualizzare i dati di V. se faccio

    System.out.println(db.eseguiQuery("select * from tesina").get(0));
    ottengo
    [Ljava.lang.String;@1f78ef1.

    facendo il casting con

    System.out.println((String)db.eseguiQuery("select * from tesina").get(0));
    non ottengo nulla

    chi può illuminarmi????
    Sembra il codice che c'è nella pillola sui DB.

    Se v, come hai scritto e come è implementato, è un vector a cui aggiungi String[], ossia array di string, l'unico cast che puoi fare è appunto ad uno String[].
    al volante son nervoso

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    390
    guarda...non riesco a fare il cast a String[]...è la prima cosa che ho provato a fare

    ps: il codice è proprio quello
    Date a Cesare quel che è di Cesare,
    tutto il resto a me!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da dmitraco
    guarda...non riesco a fare il cast a String[]...è la prima cosa che ho provato a fare

    ps: il codice è proprio quello
    codice:
    v=db.eseguiQuery(query);
    if(v!=null){
        for(int i=0;i<v.size();i++){
              String[]token=(String[])v.elementAt(i);
        }
    }
    Questo codice non mi da problemi e mi suddivide le stringhe "accorpate" in singole stringhe accessibili con le usuali regole degli array (codice scritto al volo e magari con inesattezze, ma il concetto è un cast dell'elemento a String[], visto che è costruito proprio così)
    al volante son nervoso

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    390
    alla fine ho risolto modificando la query, perchè non riuscivo proprio a fare il casting
    Date a Cesare quel che è di Cesare,
    tutto il resto a me!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.