Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: doublemm - 20 Maggio 2010, 17:19:08

Titolo: ricerca dati con sqlite
Inserito da: doublemm - 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
Titolo: Re: ricerca dati con sqlite
Inserito da: milio - 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")
Titolo: Re: ricerca dati con sqlite
Inserito da: doublemm - 20 Maggio 2010, 18:21:55
ok grazie milio siete sempre di grande aiuto
Titolo: Re: ricerca dati con sqlite
Inserito da: doublemm - 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?
Titolo: Re: ricerca dati con sqlite
Inserito da: milio - 20 Maggio 2010, 19:09:22
Dovresti far cosi':

Connection.Exec("SELECT * FROM Tabella WHERE Data BETWEEN '2010-05-12' And '2010-05-20';")
Titolo: Re: ricerca dati con sqlite
Inserito da: doublemm - 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
Titolo: Re: ricerca dati con sqlite
Inserito da: Ceskho - 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)
Titolo: Re: ricerca dati con sqlite
Inserito da: milio - 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

Titolo: Re: ricerca dati con sqlite
Inserito da: doublemm - 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.
Titolo: Re: ricerca dati con sqlite
Inserito da: Roberto Pasquali - 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?
Titolo: Re: ricerca dati con sqlite
Inserito da: ealmuno - 31 Maggio 2010, 16:57:51
se intendi una cosa del tipo:
campi = "nomi campi"
tabella = "nome tabella"
sql = "select " & campi & " from " & tabella