Autore Topic: ricerca dati con sqlite  (Letto 1245 volte)

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
ricerca dati con sqlite
« il: 20 Maggio 2010, 17:19:08 »
ciao a tutti, come si fa per cercare dati, su una tabella in un database sqlite3, compresi tra 2 date?

SELECT*FROM tabella WHERE data LIKE ................

ciao grazie
Matteo DoubleMM Mion

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #1 il: 20 Maggio 2010, 18:16:46 »
SELECT * FROM Tabella WHERE Data BETWEEN '2010-05-19' And '2010-05-20';

oppure

SELECT * FROM Tabella WHERE Data >= '2010-05-19' AND Data <= '2010-05-20';

Il formato della data deve essere yyyy-mm-dd
Per inserire anche una ricerca con l'ora yyyy-mm-dd hh:nn:ss
Per convertire una data in una stringa fai Stringa = Format(Data,"yyyy-mm-dd")

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #2 il: 20 Maggio 2010, 18:21:55 »
ok grazie milio siete sempre di grande aiuto
Matteo DoubleMM Mion

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #3 il: 20 Maggio 2010, 18:52:12 »
ho provato ma non trova nulla. Se dopo between metto due variabili con le date le devo mettere tra apici e sono di tipo string?
« Ultima modifica: 20 Maggio 2010, 18:59:42 da doublemm »
Matteo DoubleMM Mion

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #4 il: 20 Maggio 2010, 19:09:22 »
Dovresti far cosi':

Connection.Exec("SELECT * FROM Tabella WHERE Data BETWEEN '2010-05-12' And '2010-05-20';")

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #5 il: 20 Maggio 2010, 19:20:38 »
il problema non è nell'esecuzione della connessione. ti posto il codice:
Codice: [Seleziona]
 sanno = ComboBox1.Text ' combobox mi restituisce l'anno
  sdat1 = statanno & "-01-01" 'tipo string
  sdat2 = statanno & "-12-31" ' tipo string
  Message.Info(dat1 & " " & dat2, "OK")  ' qui verifico le date e sono giuste (2010-01-01 2010-12-31)
  sql = "select*from CHIUSURE WHERE data between 'dat1' and 'dat2'"
  hres = $hConn.Exec(sql)

se sostituisco le due variabili con le date tra apici funziona
Matteo DoubleMM Mion

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ricerca dati con sqlite
« Risposta #6 il: 20 Maggio 2010, 19:23:42 »
il problema non è nell'esecuzione della connessione. ti posto il codice:
Codice: [Seleziona]
 sanno = ComboBox1.Text ' combobox mi restituisce l'anno
  sdat1 = statanno & "-01-01" 'tipo string
  sdat2 = statanno & "-12-31" ' tipo string
  Message.Info(dat1 & " " & dat2, "OK")  ' qui verifico le date e sono giuste (2010-01-01 2010-12-31)
  sql = "select*from CHIUSURE WHERE data between 'dat1' and 'dat2'"
  hres = $hConn.Exec(sql)

se sostituisco le due variabili con le date tra apici funziona

Per forza è sbagliato....tu stai dando in pasto alla query delle date che lui leggerà letteralmente come dat1 e dat2.....
Prova con

Codice: [Seleziona]
 sanno = ComboBox1.Text ' combobox mi restituisce l'anno
  sdat1 = statanno & "-01-01" 'tipo string
  sdat2 = statanno & "-12-31" ' tipo string
  Message.Info(dat1 & " " & dat2, "OK")  ' qui verifico le date e sono giuste (2010-01-01 2010-12-31)
  sql = "select*from CHIUSURE WHERE data between dat1 and dat2"
  hres = $hConn.Exec(sql)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #7 il: 20 Maggio 2010, 19:51:34 »
momento...
facciamo le cose fatte bene :)

PUBLIC SUB Boh()
DIM sdat1, sdat2 AS Date
DIM hres AS Result

  sdat1 = Date(CInteger(ComboBox1.Text), 1, 1, 0, 0, 0)
  sdat2 = Date(CInteger(ComboBox1.Text), 12, 31, 0, 0, 0)

  Message.Info(Format(sdat1,"yyyy-mm-dd") & " " & Format(sdat2,"yyyy-mm-dd"), "OK")  ' qui verifico le date e sono giuste (2010-01-01 2010-12-31)
  sql = "SELECT * FROM CHIUSURE WHERE data BETWEEN '" & Format(sdat1,"yyyy-mm-dd") & "' And '" & Format(sdat2,"yyyy-mm-dd") & "';"
  hres = $hConn.Exec(sql)

END


Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #8 il: 20 Maggio 2010, 22:28:56 »
ok amigos, tutto alla perfezione. come sempre grazie di cuore. Sapete arrivo da programmi in access con un po di visual basic e col vostro aiuto sto imparando gambas.
Matteo DoubleMM Mion

Offline Roberto Pasquali

  • Gamberetto
  • *
  • Post: 1
    • Mostra profilo
Re: ricerca dati con sqlite
« Risposta #9 il: 31 Maggio 2010, 15:41:44 »
Ciao a tutti, anche io provengo da VB + SQL. Io avrei una richiesta: qui avete "costruito" la stringa SQL, è possibile "parametrizzarla" stile param del Dataaccess VB?

Offline ealmuno

  • Maestro Gambero
  • ****
  • Post: 388
    • Mostra profilo
    • http://www.ealmuno.com
Re: ricerca dati con sqlite
« Risposta #10 il: 31 Maggio 2010, 16:57:51 »
se intendi una cosa del tipo:
campi = "nomi campi"
tabella = "nome tabella"
sql = "select " & campi & " from " & tabella
il mio nuovo sito : ealmuno.com