Autore Topic: Query con parti di dati iniziali o finali  (Letto 1881 volte)

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Query con parti di dati iniziali o finali
« il: 17 Maggio 2011, 19:23:44 CEST »
0
mettiamo che io vogla trovare tutti i comuni che iniziano o finiscano in un determinato modo...
è possibile fare una query tipo String[]selectionArgs = {"Ro*"} o String[]selectionArgs = {"*ma"}   ?

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Query con parti di dati iniziali o finali
« Risposta #1 il: 17 Maggio 2011, 20:05:11 CEST »
+1
la sintassi SQL è molto famosa, se cerchi online trovi di tutto.
Puoi usare la funzione LIKE con l'operatore _ o %
se vuoi tutti i comuni del tipo Roma Rome Romi fai Rom_ se vuoi comuni tipo Roma Romagnano Rometo ecc fai Rom%
ovviamente fai tipo SELECT * FROM TABLE WHERE comune.name LIKE 'Rom%'
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Query con parti di dati iniziali o finali
« Risposta #2 il: 17 Maggio 2011, 20:08:53 CEST »
0
la sintassi SQL è molto famosa, se cerchi online trovi di tutto.
Puoi usare la funzione LIKE con l'operatore _ o %
se vuoi tutti i comuni del tipo Roma Rome Romi fai Rom_ se vuoi comuni tipo Roma Romagnano Rometo ecc fai Rom%
ovviamente fai tipo SELECT * FROM TABLE WHERE comune.name LIKE 'Rom%'

Scusa se ho scritto "*" volevo sapere se: String[]selectionArgs = {"Ro%"} lo accetta ??? oppure devo usare una rawquery?

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Query con parti di dati iniziali o finali
« Risposta #3 il: 17 Maggio 2011, 20:11:14 CEST »
+1
Scusa se ho scritto "*" volevo sapere se: String[]selectionArgs = {"Ro%"} lo accetta ??? oppure devo usare una rawquery?
non lo so se con gli statement funziona, perchè non li ho mai capiti sinceramente.... anche perchè il like non è la stessa cosa dell' = quindi credo ti convenga fare la raw query,almeno finchè non arriva qualcuno che sa usare il like con gli statement...

CONSIGLIO: Prima di fare le raw query con android, esportati il db dall'emulatore o dal cell sul desktop del pc, e con un programma di analisi SQLite (ce ne sono migliaia) prova la raw query. Ti eviti di riavviare l'app venti volte per un = ' o quel che è!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Query con parti di dati iniziali o finali
« Risposta #4 il: 17 Maggio 2011, 20:12:37 CEST »
0
Ti ringrazio sei stato gentilissimo!!!!  ;-)

Offline Audrey

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    AVD eclair 5554
  • Sistema operativo:
    Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #5 il: 17 Giugno 2011, 11:08:23 CEST »
0
So che non è la discussione adatta ma posto lo stesso la domanda nella speranza mi aiuti qualcuno  :-(

Codice (Java): [Seleziona]
public Cursor fetchPoi(){
                String groupBy="categoria";
                return Dp.query(PoiMetaData.POI_TABLE,null,null,null,groupBy,null,null);
        }
       

questa è la mia query..praticamente devo visualizzare i poi raggrupandoli per categoria.Non da nessun errore e va in esecuzione ma è quello che mi visualizza che non va. Mi visualizza una semplicissima lista con i campi ma non li raggruppa.

esempio
FastFood
Nome
indirizzo
lat lng
------------
nome
indirizzo
lat lng
Negozio
nome
indirizzo
lat lng
-------------
nome
indirizzo
lat lng

e invece li visualizza a mò di semplicissima lista
nome
indirizzo
lat lng
categoria
---------
nome
indirizzo
lat lng
categoria

ecc....  sicuramente c'è da apportare qualche modifica nell'xml, dico male?

il file xml relativo ai poi è il seguente
Codice (XML): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

  <TextView
android:id="@+id/nomeTv"
android:layout_marginLeft="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textStyle="bold"
android:textColor="#FFFFFF">
</TextView>
 
<TextView
android:id="@+id/latitudineTv"
android:layout_marginLeft="5dip"
android:layout_width="fill_parent"
android:layout_below="@id/nomeTv"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textStyle="bold"
android:textColor="#FFFFFF">
</TextView>

<TextView
android:id="@+id/longitudineTv"
android:layout_marginLeft="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_below ="@id/latitudineTv">
</TextView>

<TextView
android:id="@+id/urlTv"
android:layout_marginLeft="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_below="@+id/longitudineTv" >
</TextView>

<TextView
android:id="@+id/categoriaTv"
android:layout_marginLeft="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_below="@+id/urlTv" >
</TextView>
  </LinearLayout>

thanks  O:-)

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #6 il: 17 Giugno 2011, 11:23:07 CEST »
0
Ciao,
hai provato a dare un occhio a questa guida? A mio avviso può esserti utile.
[facile] Visualizzare gli oggetti di una ListView in gruppi omogenei con titolo - Android Developers Italia]
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline Audrey

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    AVD eclair 5554
  • Sistema operativo:
    Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #7 il: 17 Giugno 2011, 11:38:51 CEST »
0
avevo già preso spunto da lì..solo che li importa un file csv di dati..mentre io i dati statici del db li inserisco da codice, è quello il mio problema...

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #8 il: 17 Giugno 2011, 12:04:09 CEST »
0
A mio avviso è corretto che la query tiri fuori tutti i record ordinati per il campo categoria e poi l'adapter che eseguirà il raggruppamento.
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #9 il: 17 Giugno 2011, 12:55:33 CEST »
0
Puoi pubblicare il metodo getView dell'adapter?
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline Audrey

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    AVD eclair 5554
  • Sistema operativo:
    Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #10 il: 17 Giugno 2011, 14:04:19 CEST »
0
Codice (Java): [Seleziona]
  SimpleCursorAdapter adapter=new SimpleCursorAdapter( //semplice adapter per i cursor
                        this,
                        R.layout.poi, //il layout di ogni riga/prodotto
                        c,
                        new String[]{DataPoi.PoiMetaData.POI_NOME_KEY,
                                             DataPoi.PoiMetaData.POI_LATITUDINE_KEY,
                                             DataPoi.PoiMetaData.POI_LONGITUDINE_KEY,
                                             DataPoi.PoiMetaData.POI_URL_KEY,
                                             DataPoi.PoiMetaData.POI_CATEGORIA_KEY},//questi colonne
                        new int[]{R.id.nomeTv,
                                          R.id.latitudineTv,
                                          R.id.longitudineTv,
                                          R.id.urlTv,
                                          R.id.categoriaTv});//in queste views
       
          poiLv.setAdapter(adapter); //la listview ha questo adapter
       
       

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #11 il: 17 Giugno 2011, 14:24:34 CEST »
0
Ma tu hai implementato l'override del metodo getView del SimpleCursorAdapter come nell'esempio? E' questo che fa il ragruppamento. Il Cursor dovrebbe essere ordinato per Categoria, il groupBy a mio avviso non serve.

Codice: [Seleziona]
public Cursor fetchPoi(){
                String sortAsc="categoria asc"; // oppure
                String sortDesc="categoria desc";
                return Dp.query(PoiMetaData.POI_TABLE,null,null,null,null,null,sortAsc);
        }
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline Audrey

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    AVD eclair 5554
  • Sistema operativo:
    Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #12 il: 17 Giugno 2011, 14:26:21 CEST »
0
provo come hai detto tu e ti faccio sapere  O:-)

Offline Audrey

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    AVD eclair 5554
  • Sistema operativo:
    Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #13 il: 17 Giugno 2011, 14:52:40 CEST »
0
la query di per sè funziona, ma a video vedo sempre la lista elencata e non raggruppata..devo modificare l'xml a tuo avviso? non so più che pesci pigliare...non sono tanto esperta perdonatemi..

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Query con parti di dati iniziali o finali
« Risposta #14 il: 17 Giugno 2011, 14:56:50 CEST »
0
Se vuoi mandarmi il codice provo a sistemartelo...il problema per me sta proprio nel metodo getView dell'adapter...
« Ultima modifica: 17 Giugno 2011, 14:58:48 CEST da denper »
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial