Secondo me dovresti fare diversamente. Per il salvataggio su DB
rarticoli!pippo1 = valuebox1.value
Per la lettura:
valudebox1.value = cdate(rarticoli!pippo1)
Non intervenendo tu ma facendo fare le conversioni del caso direttamente al valuebox.
Ok per la valuebox in visualizzazione
Ho applicato lo stesso metodo sulla gridview in visualizzazione, ma non va mi inverte sempre prima il mese e poi il giorno
GridView1[i, 0].Text = hres!id
GridView1[i, 1].Text = hres!pippo1
GridView1[i, 2].Text = hres!pippo2
GridView1[i, 3].Text = hres!pippo3
GridView1[i, 4].text = CDate(hres!pippo4)
E riguardo alla query su questo campo data come devo inserire la data di ricerca in che formato?
Inoltre dovrei effettuare una query di un intervallo di date nel suddetto campo
ho provato questa sintasssi ma non va
SELECT * FROM TuaTabella WHERE TuoCampoData BETWEEN DataInizio AND DataFine
Grazie per i suggerimenti.
1)
prova con
gridview1[i,1] = cdate(hres!pippo1)
Fagli fare, cioè, la conversione a Gambas così che si sistemi la data lui stesso.
2)
Se devi fare anche delle query allora non so se il trucco dell'uso del campo text al posto di quello di tipo date ti può aiutare. Partendo cmq dal presupposto che la data la salvi sempre in un determinato formato, si potrebbe ipotizzare di poter fare semplici confronti tra stringhe, dove 02-02-2009 è minore di 03-02-2009, per esempio. Quindi
Result = Connection.Exec("SELECT >>campi<< FROM >>tabella<< WHERE >>campodata<< >= &1 AND >>campodata<< <= &2 ORDER BY >>campoordinamento<<", Data1, Data2)
(Ovviamente va riportato in codice SQL valido sostituendo i dati che ti servono.
3)
Io between non lo uso. Uso la sintassi su esposta.
Un'idea, che ho sepre applicato nei mie programmi, a prescidere dal linguaggio; tieni conto che ogni database ha le sue regole e impostazioni e, quindi, per evitare problemi, la cosa migliore è quella di convertire le date direttamente nella stringa della query, come ad esempio:
sql = "select * from tabella where data = '" & format("yyyy-mm-dd",Now()) & "'"
ovvero, convertire il tutto nel formato stringa standard come se lo aspetta il database (che di solito è USA).
Nella fase di lettura, fare altrettanto, convertendo la data nel formato che si desidera mostrare a video.
Riguardo a sqlite, come ho ripetutamente scritto, le tipologie di dato che gestisce sono solo "1", ovvero stringa; il fatto che poi il driver le interpreti in modo distinto non è molto significativo e, inoltre, potrebbe essere causa di guai. A seguito di questo, l'idea di leo è sicuramente la più valida.