Originariamente inviato da lucifer81
codice:
		Vector<String> v = luna.Start.db.eseguiQuery("SELECT ID FROM clienti WHERE cognome='"+cognome+"' ;");
Se hai usato il codice postato nella "pillola", allora hai certamente visto che il metodo ritorna Vector e non Vector<String>. Dal codice del metodo eseguiQuery si capisce facilmente che il Vector ritornato contiene oggetti String[] in cui per ognuno ci sono i dati delle colonne.

A parte il fatto che quella eseguiQuery() estrae tutte le colonne come String, il che è molto specifico, non certo generico (e fa un clone() che non serve). Ma non è questo il punto.

È l'uso che ne fai del Vector ritornato che è sbagliato. Innanzitutto è sbagliato Vector<String>, perché in realtà dovrebbe essere al massimo Vector<String[]>. In ogni caso avresti un warning di unchecked cast per via del passaggio da raw type a parameterized type.

Quindi dal Vector devi estrarre un elemento che è di tipo String[] e poi su questo array puoi accedere ad un dato della colonna.
Visto che già il metodo eseguiQuery() non usa i generics, potresti non usarli nemmeno tu:

codice:
Vector v = luna.Start.db.eseguiQuery("SELECT .....");
...
if (vSize == 1) {
    System.out.println("Esiste un solo record");
    String[] riga = (String[]) v.elementAt(0);

    //.... usa riga[n] per accedere alla colonna