Newsgroup: it.comp.appl.access
Titolo: Multilingua e Date

Ciao,
ho l'esigenza di utilizzare lingue e formati internazionali diversi per un
programma.
La sintassi SQL, mi impone di utilizzare il formato data "mm/gg/aaaa"
nelle istruzioni di insert, update, ...
Pensavo di risolvere semplicemente con la funzione
format(data,"mm/dd/yyyy") ma ho tristemente scoperto che se imposto il
formato internazionale e lingua a "Romania", l'istruzione di cui sopra
restituisce sempre mm.dd.yyyy! Mi dispone giorno e mese correttamente ma
non inserisce le barre! Come è possibile visto che è un carattere
esplicito che metto?
Invece usando format(data,"mm-dd-yyyy") funziona sia impostando italia che
romania.
Come è possibile? E' un baco di Format()?
Come posso risolvere in modo univoco per x lingue se non posso usare
format, evitando una funzione di parsing e costruzione stringhe ad hoc
(che ho già fatto, ma vorrei capire perchè le funzioni integrate fanno
cilecca)
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie
Hai provato ad usare CDate(TuaData) invece che il Format..?
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Hai provato ad usare CDate(TuaData) invece che il Format..?
No, ma CDATE converte una stringa in data (nel valore numerico
sottostante).
Invece a me serve il formato esplicito mm/dd/yyyy da usare in istruzioni
SQL secondo lo standard. La coversione data in stringa dipende dal formato
internazionale impostato in windows mentre io devo forzarlo a mm/dd/yyyy e
con format non ci riesco.
Grazie cmq


 Grazie cmq
Dalla tua risposta capisco che non hai capito e che non hai provato.
La formattazione la fai solo in Visualizzazione, la cosa importante
è che il Dato nel DB sia reale e corretto, e con CDate lo è, poi
con il Format(in visualizzazione) risolvi il problema....!!


 con il Format(in visualizzazione) risolvi il problema....!!
Ho provato e ti posso postare il codice. Confermo che con Cdate non
funziona.
Io devo creare un'istruzione di INSERT SQL con la data attuale
strSQL = "INSERT INTO MT_Operazioni (Utente, Data)" _
           & "SELECT '" & UCase(fOSUserName()) & "' ," & CDate(Now())
se provi ad eseguire questa stringa dopo aver selezionato le impostazioni
internazionali rumene, ad esempio, vedrai che non funziona.
Nemmeno se inserisco i cancelletti prima e dopo.
Anche con il CDate il valore poi viene convertito in stringa e quindi
torna in campo il formato, per cui non si scampa.
Il mio problema è perchè un format esplicito con le barre non funziona con
il rumeno, ad esempio.
Grazie comunque


 Grazie comunque
Scusa Diego, ma partiamo dalla chiarezza.
Cdate come scrive l'Help restituisce un NUMERO, quindi 
niente Cancelletti.
Poi questa istruzione non mi convince...!
Secondo me questa no và:
strSQL = "INSERT INTO MT_Operazioni (Utente, Data)" _
       & "SELECT '" & UCase(fOSUserName()) & "' ," & CDate(Now())
Questa và:
strSQL = "INSERT INTO MT_Operazioni (Utente, Data) " _
       & "VALUES ('" & UCase(fOSUserName()) & "' ," & CDate(Now()) & ")"
Ora non sò se il problema data Rumena persiste, ma così funziona.
Per il problema Rumeno purtroppo non ho altro da suggerirti.
Sicuro è che CDate restituisce un NUMERO indipendente dalla
Formattazione, pertanto formattando al recupero dato con
il FORMAT dovrebbe andare.
Io di solito uso un File INI nel quale metto le INFO di formattazione
che leggo all'apertura.
Ciao.


 il FORMAT dovrebbe andare.
Quello che non capisco, a questo punto, è:
In una istruzione di update SQL ANSI standard, un valore di tipo data come
va inserito? Con i cancelletti e il formata mm/dd/yyyy oppure con il
valore numerico effettivo ?
Grazie, sono sottigliezze ma è interessante, secondo me, capire fino in
fondo questa problematica e soprattutto la gestione delle date nel codice
SQL.
Saluti


Ho provato la tua istruzione e ti confermo che non funziona...
Ma da te va? A me da l'errore di sintassi perchč si aspetta i cancelletti
relativi alla data. Con quelli funziona ma il mio problema iniziale rimane.
Se la eseguo in una query, invece funziona, perchč probabilmente nella
query direttamente utilizza il valore sottostante!
Perņ il mio problema č relativo alla costruzione di una stringa SQL da
codice e quindi in questo modo non si risolve, in quanto ogni istruzione
data viene convertita nel suo formato di visualizzazione stringa, e il
format, nel caso di impostazioni internazionali diverse, non fa quello che
dovrebbe.



e se provi a formattare la data cosě?
" #" & Format (CDate(Now()), "yyyy/mm/dd") & "# "
(forse CDate non serve neppure...)
HTH
Andrea

 (forse CDate non serve neppure...)
Infatti non serve
Grazie cmq
