Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Array JSP

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    6

    Array JSP

    Ho un problema per quanto riguarda gli array:
    devo prendere un tot di righe da una cartella del database e poi dovrei metterle secondo dei criteri in un'altra cartella quindi ho fatto:

    ResulSet....
    for (i=0;i<n;i++) {
    while(rs.next()) {
    catmovim[i]=rs.getString("ID_CATEG");
    }

    Adesso ho il mio array con 3 valori diversi di idcateg, questi valori dovrei usarli in un INSERT ma se faccio l'insert all'interno del while mi si blocca la lettura dei dati e mi dà solo il primo valore, se la faccio fuori dal while non mi vede l'array...come posso fare?
    Grazie

  2. #2
    che significa che non ti vede l'array??
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    6
    vuol dire che se provo a leggerlo con un out.println dentro un ciclo for esterno al while non visualizzo nessun dato

  4. #4
    Forse è meglio se posti la struttura delle tabelle, la select che fai per riempire il ResultSet e che insert devi eseguire. Che database usi? Magari c'è una soluzione più pulita
    Al mio segnale... scatenate l'inferno!

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    6
    faccio una select * da una tabella, a questo punto ho un numero di elementi=num e faccio:

    for(i=0;i<=num;i++) {
    rsm.next();
    tipomovim[i]=rsm.getString("TIPO_MOVIM");
    }

    dove l'array tipomovim[i] è stato inizializzato così:

    <%!String tipomovim[]=new String[100];

    A questo punto se io voglio visualizzare l'array dovrei fare:

    for(i=0;i<=num;i++){
    out.println(tipomovim[i]);
    }

    peccato che non mi stampi a video i valori, li stampa solo se l'out.println lo inserisco all'interno del primo ciclo for ma io ho bisogno di tirarli fuori...l'array così inizializzato è globale? magari sbaglio lì...

  6. #6
    Allora... dato che il numero delle righe presente in tabella è variabile ti sconsiglio di utilizzare un array per memorizzare i dati. Supponendo che nella tabella hai più di 100 record... non puoi memorizzarli tutti nell'array da te dichiarato. Ti serve una struttura dat dinamica, ad esempio un Vector:

    codice:
    String query = "select * from tabella";
    ... //esegui la query e salvi il risultato nel ResultSet rs
    Vector<String> tipomovim = new Vector<String>();
    while(rs.next()){
         tipomovim.add(rs.getString("TIPO_MOVIM"));
    }
    
    //per recuperare gli elementi dal vettore:
    for(int i=0;i<tipomovim.size();i++){
         out.println(tipomovim.elementAt(i));
    }
    Se invece devi per forza usare un array, allora devi prima calcolarti il numero di record dalla tabella, e creare l'array indicando tale numero come dimensioni:

    codice:
    String query = "select count(*) as num from tabella";
    int num = 0;
    ResultSet rs = tuoStatement.executeQuery(query);
    if(rs.next())
         num = rs.getInt("num");
    
    String[] tipomovim = new String[num];
    
    query = "select * from tabella";
    rs = tuoStatement.executeQuery(query);
    
    int cont=0;
    while(rs.next()){
         tipomovim[cont] = rs.getString("TIPO_MOVIM");
         cont++;
    }
    // scorri l'array...
    for(int i=0;i<tipomovim.length;i++){
         out.println(tipomovim[i]);
    }
    Al mio segnale... scatenate l'inferno!

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    6
    Grazie tante, stasera provo...no non sono obbligato ad usare un'array, con il vector (del quale non ero a conoscenza) mi hai risolto anche l'altro problema(quello della limitazione ).

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.