Autore Topic: Problema con una query  (Letto 597 volte)

Offline Tizzi

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Problema con una query
« il: 03 Novembre 2010, 20:50:22 CET »
0
Ciao a tutti. Oggi ho voluto sperimentare un query di estrazione dati con piu valori where come argomento. Copio una porzione di progetto
Codice (Java): [Seleziona]
CategoriaListaUNO = "Cattivo"
               
CategoriaListaDUE = "Bello"
               
CategoriaListaTRE = "Strano"

                String[] whereCercaLista ={CategoriaListaUNO,CategoriaListaDUE,CategoriaListaTRE };
                       
                        // Eseguiamo la query per estrarre tutte le informazioni dalla
                        // tabella
                        cursor = database.query("PuntiDiInteresse",METADATI.Colonne, "categoria=?",whereCercaLista , null, null, null);
                        // Creiamo un Adapter con il cursore
                        adapter = new SimpleCursorAdapter(this, R.layout.row_layout, cursor,FROMS, TOS);
                        // Lo assegnamo alla ListView
                        listview.setAdapter(adapter);

e mi da un bel errore. Se ci fosse stato solo un elemento nel mio Array string whereCercaLista il tutto va. Con due o piu argomenti non va. Come mai? Io tecnicamente posso fare una where con piu valori diversi.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema con una query
« Risposta #1 il: 03 Novembre 2010, 21:10:16 CET »
0
Se ho capito bene quello che vuoi fare, devi comporre la condizione che lega i tuoi parametri, che so... (categoria=? OR categoria=? OR categoria=?) altrimenti come fa la query a saperlo?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Tizzi

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Problema con una query
« Risposta #2 il: 03 Novembre 2010, 21:19:19 CET »
0
ah quindi devo ripetere per 3 volte il comando "categoria=?" ?
pensavo che bastasse scriverlo una volta e il costruttore automaticamente selezionava gli argomenti che gli passo con l'array di stringhe.
Provo subito.

No provato... penso di non aver capito come creare la condizione or nella query allora.
« Ultima modifica: 03 Novembre 2010, 21:31:54 CET da Tizzi »

Offline Tizzi

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Problema con una query
« Risposta #3 il: 04 Novembre 2010, 03:19:33 CET »
0
Dopo vari smanacciamenti notturni sono arrivato alla soluzione :
Codice (Java): [Seleziona]
cursor = database.rawQuery("SELECT * FROM PuntiDiInteresse WHERE categoria=? OR categoria=? OR categoria=?", whereCercaLista);aggiungo un categoria=? per ogni argomento che ho in  whereCercaLista, in questo caso avrò 3 argomenti.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Problema con una query
« Risposta #4 il: 04 Novembre 2010, 09:23:52 CET »
+1
beh...
in teoria la query la dovresti scrivere così:
SELECT * FROM PuntiDiInteresse WHERE categoria in (?, ?, ?)

sto parlando solo di sql, non sto entrando nel merito di android o della classe database.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/