Newsgroup: it.comp.lang.visual-basic
Titolo: Ado, SQL e Date

utilizzando questa istruzione
rsFatture.Open "select * from Fatture where (Data between #" &
selDataDa.Value & "# AND #" & SelDataA.Value & "#) order by data desc",
AdoConn
dove rsFatture è un ADODB.Recordset, SelDataDa e SelDataA sono gli estremi
di un range di date
(controlli monthView), AdoConn è una ADODB.Connection
ottengo un recordset rsFatture con una strana selezione di record:
- se il formato data nelle impostazioni internazionali di windows (98/2000)
non è nel formato gg/MM/aaaa non restituisce niente
- se il formato data è quello giusto, ma prendo in considerazione i giorni
dal 01 al 12 del mese mi da una serie di record vari presi in giro per
l'archivio da tutti i mesi.
i casi sono:
o io ho bevuto qualcosa che mi ha fatto male,
o ADO è folle
o sto commettendo un errore banale che non riesco ad individuare (magari per
ignoranza)
voi ci capite qualcosa?
grazie
Fabi

 selDataDa.Value & "# AND #" & SelDataA.Value & "#) order by data desc",
prova in questo modo:
rsFatture.Open "select * from Fatture where (Data between #" &
Format$(selDataDa.Value,"m/d/yyyy") & "# AND #" &
Format$(selDataA.Value,"m/d/yyyy") & "#) order by data desc",
se il db e' Access dovrebbe funzionare.
bye
R


significa che su un db diverso da Access potrebbe non andare?
ma non si diceva che con ADO una volta scritto il codice funziona con
qualunque DBMS semplicemente cambiando la stringa di connessione? perchč ha
comportamenti (anche su cose semplici) per i quali a seconda del db usato si
devono trovare artifici per aggirare i problemi?
[scusa la polemica ma sono cosě arrabbiato con ADO che non ne posso fare a
meno]
Fabi

 Fabi
bye
R

 meno]
CUT
(penso di mandare la fattuta a M$ come addetto alle PR)
sigh!
sob!
allora amico mio....
il fatto che su access funzioni e su altri DB no ...non dipende da ADO
con ADO cambi SOLO la stringa di connessione e TI CONNETTI ad un altro
motore DB fine!
non è che con la bacchetta magica ti trasforma una applicazione.
Diciamo che se l'hai progettata conforme a regole standard non hai grossi
problemi!
POI
entra in gioco SQL
chiedi al povero herbie la difficoltà insita nei vari "dialetti" SQL.
Se access accetta l'italianissimo dd/mm/yyyy scazza alla grande!
perchè le specifiche SQL direbbero
mm/dd/yyyy
ed ADO si confermerebbe, col provider Jet a quelle specifiche!
vai a chiedere ad Herbie l'Oracliano test numeric(6,2) in una create table
se funziona in Access...
....ehm poi dai una occhiata anche a BETWEEN...
anche a te consiglio una lettura di
http://guide.supereva.it/database/sql/
Considera poi che Access è un programma adatto ad utenti non a
programmatori!
Access ha rivestito di queste ed altre "chicche" perchè non gli importa di
essere standard...ma di essere facile e "carino" da usare.
E' adatto al commercialista che tiene il suo promemoria o archivia le
delibere.
Al medico per archiviare i pazienti.
Al meccanico per tenere la lista delle revisioni periodiche.
Tutta roba che fai facilmente senza programmare nulla e rimanendo in
ambiente visual!
Se vuoi usare un motore un po  più serio di M$ usa msde.
Extra M$ ne trovi altri....
Saluti!
(ora scappa un flame? speriamo di no!)

 meno]
Non ti scuso la polemica perchč nasce da un presupposto sbagliato, ossia che
qualcosa debba sopperire alla nostra ignoranza. Visto che ci facciamo pagare
per sviluppare, facciamolo bene e sfruttando le possibilitŕ che ci vengono
fornite dalla tecnologia, che sono molte di piů, e piů prefezionate, di
quanto la maggior parte di noi ne sappia.
Alberto

Probabilmente è vero  tutto questo, scusate.
vado a studiare, sperando che poi mamma M$ non se ne esca con una novità che
rende ADO, SQL, Windows e i panini con la mortadella che mangio a merenda
superati ed incompatibili con l'ultimo grido.
Fabi