PDA

Visualizza la versione completa : [JAVA] Vector estrapolazione stringhe


versus_p
08-03-2006, 11:22
Innanzitutto un saluto aL FORUM.
Il mio problema il seguente:
Ho un Vector nel quale sono immagazzinate le informazioni di una query SQL (Una SELECT * FROM una tabella che ha solo 2 campi:id,nome e due righe); come faccio a estrapolare le informazioni nel loro formato?Il campo id un int mentre il campo nome un varchar quindi presuppongo una stringa. Ho provato un sacco di metodi elementAt(0).toString() mi restituisce una stringa con caratteri strani(credo in esadecimale) ma non c' stato verso di risalire ai record nel formato che mi interessa (String per il campo nome e int per il campo id).Inoltre si pu indicizzare un vector?Anche perch il mio vector di dimensione 2,quindi lui crea un elemento di vector per riga della tabella?
Grazie dell'aiuto

LeleFT
08-03-2006, 14:53
Posta un po' di codice. Ad esempio:

1) Il codice che effettua la query nel DB ( qui che devi decidere il formato da utilizzare per i dati)

2) Il codice che recupera i valori dal Vector (elementAt(0).toString() sicuramente errato dato che elementAt(0) dovrebbe essere un array).


Ciao. :ciauz:

versus_p
08-03-2006, 15:26
Scusami,dopo che ho aperto la discussione mi sono imbattuto nella tua "pillola" su java e i db e ho in parte risolto i miei problemi...ma ne sono sorti altri. Ti riposto il messaggio che avevo messo in risposta alla pillola.

"
Ciao LeleFT, complimenti x la pillola, molto "chiarificante".. mi sorge un problema,io ho in un vector il risultato di una query ("SELECT * FROM 'miatabella';").
La tabella contiene due campi id e nome ed composta da due righe
id | nome
------------------
1 | luigi
2 | giorgio



la porzione di codice:

// Stampiamo i risultati:

int i=0;
while ( i<v.size() ) {
System.out.println("Record numero " + (i+1));
String [] record = (String[]) v.elementAt(i++);
for (int j=0; j<record.length; j++)
System.out.println( record[j] );
}

funziona perfettamente e stampa a video gli elementi del record (che un array di stringhe di lenght=nrighe,no?) per come mi aspetto,cio "Record numero 1 1 luigi" "Record numero 2 2 giorgio".

Se per in ambiente grafico scrivo
for(int i=0;i<record.lenght;i++)
JOptionPane.showMessageDialog(null,record[i]);
il risultato diverso da quello che mi aspetto: record[0] 2 e record[1] giorgio,cio perdo (o non so estrarre) 1 e luigi
A me servirebbe estrapolare un array di stringhe solo dei nomi da "dare in pasto" a un JComboBox senza perdere il riferimento ad id che una chiave esterna che mi relaziona la tabella a un'altra tabella...come fare???? Grazie

"

LeleFT
09-03-2006, 14:58
Tutto dipende dalla struttura della tabella nel DB e, soprattutto, dalla query che gli mandi in pasto. Se nella query hai invertito i due campi, sar con quell'ordine che li vedrai tornare indietro.

Poi, record[i] l'i-esimo campo del record attuale. Per scorrere tutti i record devi scorrere il Vector.


Ciao. :ciauz:

versus_p
11-03-2006, 19:43
Buonasera a tutti.
Purtoppo su questo pc non dispongo del codice del programma che sto cercando di realizzare.
Vi chiedo allora se potete aiutarmi "in toto":
dovrei realizzare un metodo che dato un vector che contiene il risultato di una SELECT* FROM 'mia_tabella'(la tabella quella schematizzata nel precedente intervento),scorra il vector e salvi in un array di stringhe il suo contenuto.
Il problema che il vector contiene 4 informazioni (perch la mia_tabella ha 2 righe e 2 colonne) organizzate in due elementi.
Per eseguire la query ho utilizzato il codice della pillola di LeleFT, per cui vector.elementAt(0) dovrebbe essere il contenuto della prima colonna della tabella (nel mio caso 1 e 2) e vector.elementAt(1) sar (Luigi Giorgio).
E' possibile scinderli in 4 elementi separati?
A me servirebbe organizzare i dati in un array di stringhe del seguente tipo {1,luigi,2,giorgio}
ossia array[0]="1";
array[1]="luigi";
array[2]="2";
array[3]="giorgio".


E' un paio di giorni che ci provo arrivando a risultati a volte "inspiegabili" per cui non mi metto qui a descriverli. per favore aiutatemi!!!!!!!!!!

Loading