Newsgroup: it.comp.lang.visual-basic
Titolo: me qual'è il  formato della data?

Salve ragazzi.
Taglio corto:
DB2  e un'applicazione che deve gestire delle date.
1. La scrittura delle date su una tabella
avviene, nel caso in esame (quello che mi da 'sti problemi), tramite
un'altra applicazione:
un WebServices mi fornisce una hash di stringhe (...).
Tra queste stringhe ci son 'ste date (e qui il formato è 'dd/mm/yyyy')
L'insert (o update )
viene fatta direttamente da stringa per questi valori,
cioè senza formattazioni varie, nella forma
Es.
(SQL) UPDATE / INSERT...
fieldDate = '" & array(9) & "'"
....
e funziona.
Almeno da quanto verifico con i  dovuti check
(le query mi ritornano lostesso formato della stringa insomma)
2. Devo successivamente replicare il valore di questi campi dalla
tabella di partenza (di appoggio, insomma)
Faccio la dovuta select (faccio la cosa in più passi per altre
ragioni,
memorizzando i risultati in array di stringhe)
e la stringa che mi ritorna è esattamente quanto è stato scritto
nella fase 1.
3. tranquillamente Passo alla scrittura sui campi di desrtinazione
cercando di fare LA STESSA cosa che in 1
(
(SQL) UPDATE / INSERT...
fieldDate = '" & arraystr(9) & "'"
....
)
e mi da problemi sulla formattazione
(01/31/07 != 31/01/07 insomma...)
Da qui
l'unica maniera che ho di scrivere la data è quella di
- utilizzare da codice un parametro sull' ADODB.Command:
cioè
(SQL) UPDATE / INSERT...
fieldDate = #[paramdata]#'"
....
con le proprietà seguenti:
Comm.Parameter('paramdata').Type=adDate
Comm.Parameter('paramdata').Value=format(CDate( arraystr(9) ),"dd/mm/
yyyy")
dove
arraystr(9)
è un elemento dell'array di stringhe in questione.
Ragazzi.
Ditemi che c'è una migliore maniera per fare questo.
E soprattutto spiegatemi  come!.
Grazie

 e funziona.
Culo.
Funziona solo finchè le impostazioni regionali dell'utente/login sono 
impostate, e non sono state modificate durante il singolo spid, 
esattamente allo stesso modo della sorgente (ossia italiano).
Ciao
Alberto
-- 
Heinrich Zille: Ognuno crede che l'altro sia come se stesso, 
dimenticando che al mondo esistono anche delle persone oneste.

Immaginavo.
Allora bisogna risolvere il sistema a monte.
Ma se in tutto sto casino
gestissi la cosa a livello di stringa
quando faccio la seconda query?
- purtroppo non posso proprio fare a meno dell'array di stringhe.
Intendo dire:
quando prendo la data per metterla nella stringa,
formatto il campo per esempio con un to_date (io l'operazione affine
insomma)
nell'SQL.
Ma allora perchè la prima volta
che scrivo
accetta
direttamente da stringa,
con una sql del tipo
..
fielddate = '"  & arrayStrindData(9) &  ""'
...
e la seconda volta,
sempre quando vado a scrivere
invece mi dice che il formato della stringa non è corretto?
Voglio dire che
in ogni caso la stringa non cambia: è sempre '31/01/2007':
solo che perchè
la prima volta pensa al 31 di gennaio
e la seconda volta s'incazza perchè
- giustamente -
non riesce a trovare il '31-esimo mese?

 in ogni caso la stringa non cambia: è sempre '31/01/2007':
Se tu postassi il vero codice che utilizzi, si potrebbe dire qualcosa.
Ad esempio, nel punto due dici di mettere i risultati in array di 
stringhe. Ohi, questo si può fare in cento modi, localizzato o 
delocalizzato. Poi la sintassi SQL che utilizzi non è mica tanto 
esplicitata...
Ciao
Alberto
-- 
Karl Marx: Uno scrittore è produttivo non nella misura in cui produce 
idee, ma nella misura in cui arricchisce l'editore che pubblica le sue 
opere.

ok.
Allora
- quando scrivo sulle stringhe faccio così
la select è del tipo
"SELCT filedDateTime1,filedDateTime2, filedDateTime3
from TABELLA1 where...."
dopodichè
scrivo in un array locale il risultato del getRows()
messo a sua volta in un Dictionary
....
arrRet=rs.getRows()
oDict("DatiDate")=arrRet
...
e il metodo che contiene questo codice ritorna appunto oDict(.
- Successivamente, per utilizzare questo array in un'altra funzione
istanzio in locale un'altro array di stringhe
e poi vi accedo normalmente:
nella UPDATE infatti faccio
UPDATE TABELLA2
set fieldDate=array(0),
fieldDate=array(2),
....
where...
e premetto che i campi fieldDate sia nella TABELLA2
che in quella TABELLA1
hanno lo stesso tipo.
Non dovrebbe dare problemi, no?
e invece...

rettifico:
scusatemi.
- scusami Albe..
Quegli esseri immondi dei DB m'han messo un VarCHar sulla
tebella1 invece di una data: ecco perchè funzionava.
Quindi a questo punto
prendo quella 'fottuta' stringa (che è poi una data)
e la formatto da SQL,
perchè il CDate prende come dicevi prima
le impostazioni da sistema?