Autore Topic: Gridbox e formato data  (Letto 1761 volte)

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Gridbox e formato data
« il: 22 Giugno 2011, 11:20:30 »
Ho una tabella sqlite con campo GMA date e la data mi viene memorizzata dalla gridbox (grazie Milio!!!...) con il formato visibile di dd/mm/aa (sapevo che gambas la data la memorizza nel formato yyyy/mm/dd hh:mm:ss)

In una form ho il datebox1 che restituisce una certa data. Se apro il database e do' il comando:

Codice: [Seleziona]
myset = myconn.Exec("Select * from tbPasti where GMA=&1", datebox1.Value)

Nemmeno questa va:

Codice: [Seleziona]
myset = myconn.Exec("Select * from tbPasti where GMA='" & Format$(datebox1.Value, "dd/mm/yy") & "'")

Help! :-\ :hard:
« Ultima modifica: 22 Giugno 2011, 11:38:16 da andy60 »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Gridbox e formato data
« Risposta #1 il: 22 Giugno 2011, 17:39:52 »
Può essere che nel database la data venga salvata in questo modo
Citazione
1969-09-09 00:00:00
prova così anche se non è tanto elegante
Citazione
myset = myconn.Exec("Select * from tbPasti where GMA LIKE '%" & datebox1.Value & "%'")

non ho provato

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #2 il: 22 Giugno 2011, 20:14:25 »
ho provato ma il recordset mi sembra essere vuoto

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Gridbox e formato data
« Risposta #3 il: 22 Giugno 2011, 21:52:27 »
prova cosi':

myset = myconn.Exec("Select * from tbPasti where GMA='" & Format$(datebox1.Value, "yyyy/mm/dd") & "'")

La GridBox ti permette di scegliere il formato ma comunque sia salva nel db nel formato 'classico' ovvero yyyy/mm/dd hh:nn:ss (scritto alla Gambas :) )

ps.

Che oggetto e' DateBox1 ?
« Ultima modifica: 22 Giugno 2011, 21:54:29 da milio »

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #4 il: 22 Giugno 2011, 22:24:08 »
prova cosi':

myset = myconn.Exec("Select * from tbPasti where GMA='" & Format$(datebox1.Value, "yyyy/mm/dd") & "'")

La GridBox ti permette di scegliere il formato ma comunque sia salva nel db nel formato 'classico' ovvero yyyy/mm/dd hh:nn:ss (scritto alla Gambas :) )

ps.

Che oggetto e' DateBox1 ?

il codice del campo GMA:

Codice: [Seleziona]
With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Date
    .Field = "GMA"
    .Text = "GMA"
    .Name = "gma"
    .DefaultValue = Date(Now)
    .Required = True
    .w = 100
    .Alignment = 3
  End With

non mi salva nel classico formato di gambas per cui probabilmente la query non va x questo. Allego schermate
« Ultima modifica: 23 Giugno 2011, 07:35:00 da andy60 »

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #5 il: 23 Giugno 2011, 06:22:25 »
datebox, mi viene un grande grandde dubbio, ma che fa parte dei componenti clib di Luigi (alias mdxxxx)? Mi sembra di no. Ho compilato g3 da rc e me lo sono trovato dentro.

Mi confermate che non fa parte di clib? Anche xche' non mi sembra di averla mantenuta nella nuova versione.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Gridbox e formato data
« Risposta #6 il: 23 Giugno 2011, 12:31:56 »
Un paio di chiarimenti, anche se li avevo già fatti parecchio tempo addietro.

1) il tipo Date è un tipo particolare, definito in memoria (vedi anche documentazione, non solo quella Gambas) in un formato numerico in virgola mobile. Adesso non stò qui a descrivere esattamente il formato, ma la sua presentazione in formato leggibile. Questo avviene definendo un formato di conversione (vedi Format$), con stabilire cosa e come rappresentare il valore numerico Date. Per default, molte strutture definiscono un formato di default, spesso dipendente dalla lingua corrente, che non è detto corrisponda a quello desiderato. Detto questo, per le trasformazioni stringa->date e viceversa occorre, se si necessita di particolari condizioni, usare le specifiche funzioni fornite da Gambas.

2) lo stesso discorso vale anche per il database, ma dipende anche dal motore e dalle impostazioni CharSet configurate. Ad eccezione di SQLite, MySQL e PostgreSQL trattano il tipo DATE/DATETIME nel formato iso numerico, per cui non ci sono problemi nell'esportazione e nell'impostazioni di dati, se utilizzate le librerie adatte. Nella sintassi SQL, per ogni motore, è possibile descrivere (come in Gambas) il formato con cui deve essere interpretata una data, tenendo presente che la stessa viene definita come stringa, ma che sarà poi memorizzata come un numero.

3) Date, numeri (Integer, Long, Float ecc.) sono definiti in memoria in formato binario di lunghezza ben precisa. La loro rappresentazione a video, ovvero leggibile, dipende dal tipo di conversione che viene applicato. Ad esempio, un valore 10, è rappresentato da una serie di bit (00001010) accesi in uno o più byte (dipende dal tipo), che non sarebbero leggibili come siamo soliti vedere. Per poter vedere il numero in maniera comprensibile è necessario convertirlo.


Mò mi fermo qui, perchè non riesco a leggermi, dato che l'area di testo non mi scrolla... maledetto IExplorer...

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #7 il: 23 Giugno 2011, 13:20:06 »
Grazie Luigi x gli appunti, certamente utili. In relazione al problema che ho palesato (mi sembro Lotito...ahahahahaha), hai qualche suggerimento?

Ti riepilogo:

-database sqlite
-tabella tcon campo Date denominato GMA
-utilizzo del componente gridbox per la memorizzazione dei dati

Cosa succede:
- il campo data viene salvato nel formato dd/mm/yyyy
- se utilizzo in una forma qualunque un controllo datebox e inserisco la data nel controllo e crea una ricerca, la ricerca non va nemmeno con..le cannonate

provata la sql nelle due consuete maniere:
Codice: [Seleziona]
select * from tb.... where GMA=&1,datebox.value
e
Codice: [Seleziona]
select * from tb.... where GMA=' " & datebox.value & " ' "

sarebbe da approfondire (e qua mi rivolgo a te ed anche a milio...), se gridbox accetta una inputmask (mi sembra di si) che sia compatibile con sqlite e g3

inputmask non ha codice esemplificativo x cui non so come funziona
« Ultima modifica: 23 Giugno 2011, 13:25:57 da andy60 »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Gridbox e formato data
« Risposta #8 il: 23 Giugno 2011, 13:51:47 »
La Mask la eviterei, perchè non specifica per i valori di tipo date. Ti comporterebbe un'ulteriore serie di controlli che, tra le altre cose, sono appunto presenti in datebox.

Però se non ricordo male dalle prove che ho fatto e la lettura dei source dei controlli in G3, datebox ha la possibilità di definire il formato di presentazione, una proproetà che permetta di definire il formato di visualizzazione. Ora non posso dirti quale, ma un'occhio al sorgente lo darei per capire qual'è, tenendo presente la scarsezza di informazioni dalla doc ufficiale.

Nei controlli che ho creato nella CLib, in particolare per CTable, ne ho appunto creato uno basandomi sui controlli G3, inserendo le opportune migliorie.

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #9 il: 23 Giugno 2011, 13:54:29 »
La Mask la eviterei, perchè non specifica per i valori di tipo date. Ti comporterebbe un'ulteriore serie di controlli che, tra le altre cose, sono appunto presenti in datebox.

Però se non ricordo male dalle prove che ho fatto e la lettura dei source dei controlli in G3, datebox ha la possibilità di definire il formato di presentazione, una proproetà che permetta di definire il formato di visualizzazione. Ora non posso dirti quale, ma un'occhio al sorgente lo darei per capire qual'è, tenendo presente la scarsezza di informazioni dalla doc ufficiale.

Nei controlli che ho creato nella CLib, in particolare per CTable, ne ho appunto creato uno basandomi sui controlli G3, inserendo le opportune migliorie.

Per clib dovresti (compatibilmente con il tempo) creare un installer simile a quello fatto da milio, dai una guardata

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #10 il: 24 Giugno 2011, 00:22:40 »
sto diventando matto!!

-se apro il database sqlite database browser il campo data è visualizzato con il formato yyyy-mm-dd 00:00:00 (hh:mm:ss empre 00:00:00)
-gli stessi dati nel database browser di g3 appaiono nel formato dd/mm/yy

se utilizzo il controllo datebox i seguenti comandi , che prodducono la stessa stringa di ricerca, il primo funziona, il secondo no....boh

Codice: [Seleziona]
myset = myconn.Exec("select * from tbPasti where GMA Like '2011-06-23  00:00:00'")==============> funziona
myset = myconn.Exec("select * from tbPasti where GMA Like '" & Format$(datebox1.value, "yyyy-mm-dd 00:00:00" & "'") ====>non funziona

help me :hard: :hard: :hard: :hard: :hard: :hard: :hard: :hard: :hard: :hard: :hard:
 :'( :'( :'( :'( :'( :'(

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Gridbox e formato data
« Risposta #11 il: 24 Giugno 2011, 01:15:20 »
Puoi postarmi un'esempio o il progetto?

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #12 il: 24 Giugno 2011, 06:41:17 »
Puoi postarmi un'esempio o il progetto?

eccolo

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Gridbox e formato data
« Risposta #13 il: 24 Giugno 2011, 09:04:10 »
Cavolo!! per forza non ci capiamo..dove hai trovato databox?? è ancora top secret  8)
Per quello che devi fare tu va bene un normale valuebox impostato con type date.
Andy..vuoi scoprire troppe cose tu....  :D
Ciao

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Gridbox e formato data
« Risposta #14 il: 24 Giugno 2011, 09:23:23 »
Cavolo!! per forza non ci capiamo..dove hai trovato databox?? è ancora top secret  8)
Per quello che devi fare tu va bene un normale valuebox impostato con type date.
Andy..vuoi scoprire troppe cose tu....  :D
Ciao


databox: ti assicuro che non lo so, ho compilato g3...(vedi foto , i miei controlli..)

esempio: puoi cortesemente sistemare l'esempio come dici te? non ci riesco lo stesso (allegato...)...grazie di cuore

« Ultima modifica: 24 Giugno 2011, 09:41:18 da andy60 »