Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281

    [Java] Try e catch e ciclo do-while

    Ciao a tutti!
    Ho un problema con queste due instruzioni. Vi spiego:
    all'interno di try e catch, creo in ciclo do while. Dentro il ciclo richiamo una funzione che mi estrae un record alla volta da un data base Oracle (la necessità di estrarre un record alla volta deriva dal fatto che devo passare da cobol, ma questo non ci interessa in questo momento). In questa stringa sono contenuti i campi della tabella e il SQLCODE; questo lo uso per intetrrompere il ciclo. Dopo aver estratto in campo necessario, lo voglio inserire in un array che dovrebbe aumentare ogni qualvolta estraggo il campo voluto. L'array sarà composto dal campo pippo di tutti i record e sarà posto in un combo. Il problema è che il combo si riempie solo del primo record estratto.
    Vi posto il codice.

    try {

    do {

    String arr[] = new String [35];

    String javaStringOut = function(javaString);

    String SQLCODE = javaStringOut.substring(392,402);

    String tot = javaStringOut.substring(1147,8192);

    String j = tot.trim();

    String CDXTAB = j.substring(0,30);

    int num = 0;

    arr[num] = CDXTAB;

    num = num+1;

    System.out.println(SQLCODE);

    JComboBox combo = new JComboBox(arr);

    frameContainer = getContentPane();

    frameContainer.setLayout(null);

    combo.setBounds(10,10,240,20);

    frameContainer.add(combo);

    }while(SQLCODE != "+000000100");


    } catch (Exception e) {
    System.out.println("CHECK err");

    }

    E' un pò un casino, ma sono sicuro ci sia qualcuno che mi può aiutare.

    pgm

  2. #2
    beh, intanto nella catch non visualizzi il codice dell'exception (nel tuo caso lo catchi come variabile "e")... e poi dipende da quale exception throwi... ogni classe deve throware un'exception perché questa possa essere catchata.
    Vladislav III din Sighisoara,
    conte di domnitor al Valahiei
    denumit Tepes sau al Dracului


    ...ce tie nu-ti place altuia nu-i face...

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prova così

    String arr[] = new String [35];
    int num = 0;
    do {
    String javaStringOut = function(javaString);
    String SQLCODE = javaStringOut.substring(392,402);
    String tot = javaStringOut.substring(1147,8192);
    String j = tot.trim();
    String CDXTAB = j.substring(0,30);
    arr[num] = CDXTAB;
    num++;
    System.out.println(SQLCODE);
    } while (SQLCODE != "+000000100");
    JComboBox combo = new JComboBox(arr);
    frameContainer = getContentPane();
    frameContainer.setLayout(null);
    combo.setBounds(10,10,240,20);
    frameContainer.add(combo);

    hai fatto degli errori logici

  4. #4
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    x Vlad

    Questa è l'eccezione che mi ritorna. Infatti non si interrompe il ciclo per il SQLCODE ma per l'ecezione.

    java.lang.StringIndexOutOfBoundsException: String index out of range: 30

    x Floyd

    Grazie. Provo così e poi tifaccio sapere.

    pgm

  5. #5
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Problema

    Non mi vede la variabile String SQLCODE:

    pgm.java:323: cannot resolve symbol
    symbol : variable SQLCODE
    location: class pgm
    }while(SQLCODE != "+000000100");

    Forse bisogna definire la stringa SQLCODE fuori dal ciclo?

    pgm

  6. #6
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    x Floyd

    Inoltre non mi crea più il combo. Non capisco il perchè.

    pgm

  7. #7
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    definisci SQLCODE prima del do while
    sposta la creazione del jcombobox dentro o dopo il catch

  8. #8
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Ok. Ho spostato SQLCODE fuori da ciclo, ma se creao il JCombobox dentro o fuori il catch non mi vede più "arr".

    pgm

  9. #9
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    Bene. Ho spostato la definizione dell'array fuori dal try e catch e funziona anche se non capisco il perchè.
    Ma!! La definizione di questo è

    String arr[] = new String [35];

    Il numero 35 l'ho messo perchè so che nella tabella ci sono 35 record.
    Per avere una array generale indipendente dal fatto di sapere o meno quanti record ci sono, come faccio a crearlo?

    Infatti se metto
    String arr[] = new String []; senza 35 mi da errore.

    Pgm

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    non esistono gli array dinamici
    sol. a > fai un array di 1 e ogni volta che aggiungi un oggetto crei un nuovo array con dim quella precedente + uno e copi il vecchio array nel nuovo array
    sol. b > ti servi di un Vector e ci aggiungi gli oggetti in modo dinamico, poi devi creare un array con gli elementi del vettore

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 © 2024 vBulletin Solutions, Inc. All rights reserved.