Newsgroup: it.comp.lang.visual-basic
Titolo: Campi date e Null

Ho un problema nel togliere i valori Null dai campi:
dovendo assegnare un valore vuoto ad un campo stringa uso
rsRecordSet.Fields("testo").Value = ""
in un campo numerico uso
rsRecordSet.Fields("numero").Value = 0
ma in un campo DATA cosa metto??
Io ho provato con 0, 00/00/0000 e "" ma nella migliore delle ipotesi 
viene caricata la data 31/12/1899.
Qualcuno mi può aiutare?
Grazie.

 Qualcuno mi puņ aiutare?
Come mai devi togliere i null dal database?
Di solito in fase di caricamento si fa un 
If Isnull(Rs("Campo")) then
else
endif
Oppure in fase di select
SELECT COLAESCE ("DATAMIA","") FROM tabella
Questa ti prendere la data, oppure ti da "" se la data č Null.

 Ho un problema nel togliere i valori Null dai campi:
Secondo me il problema è che tu vuoi togliere i NULL dai
campi.
Cerco di spiegarmi: in teoria, se un campo permette i NULL
vuol dire che può non esserci alcun dato.
Se tu metti un valore(ad esempio "" nel caso di una stringa)
dove dovrebbe esserci un null le cose sono due: o è sbagliato il
database, oppure è sbagliato il programma.
In entrambi i casi, non dovresti farlo :D
Ciao,
Andrea

 Questa ti prendere la data, oppure ti da "" se la data è Null.
Il fatto è che devo mettere le mani su una procedura esistente e che, 
ogni tanto, da problemi dovuti a valori Null (a dire il vero fino ad ora 
solo su campi stringa e numerici. Allora pensavo di rintracciare le sole 
istruzioni ADDNEW e INSERT INTO e aggiungere o sostituirle con una 
funzione che si incarica di aggiungere i valori richiesti aggiungendo 
valori (0 per i numerici, "" per le stringhe e ??? per le date) ai campi 
  di cui non sono stati indicati i valori.
Sono però disposto a valutare altre idee.
Piuttosto non ho capito la funzione COLAESCE ("DATAMIA","") che hai 
usato nell'esempio.
Non esiste in VB6 ma mi pare di aver capito che sia una funzione 
condizionale, io, di solito, uso cose del genere ...
SELECT IIF(IsNull(DATAMIA),"",DATAMIA) as DATANUOVA FROM tabella
... ma in questo caso il campo DATANUOVA non è editabile.
Grazie, ciao.

 ... ma in questo caso il campo DATANUOVA non č editabile.
La coalesce si usa in fase di select, non c'entra vb6. Magari il tuo DB usa
la condizione IIF, dovresti vedere la sintassi sql supportata.

Andrea Raimondi ha scritto:

Il fatto è che devo mettere le mani su una procedura esistente e che, 
ogni tanto, da problemi dovuti a valori Null (a dire il vero fino ad ora 
solo su campi stringa e numerici. Allora pensavo di rintracciare le sole 
istruzioni ADDNEW e INSERT INTO e aggiungere o sostituirle con una 
funzione che si incarica di aggiungere i valori richiesti aggiungendo 
valori (0 per i numerici, "" per le stringhe e ??? per le date) ai campi 
  di cui non sono stati indicati i valori.
Sono però disposto a valutare altre idee.
Ma da quanto mi dici mi sa che sono davanti a entrambe le tue ipotesi e 
ho paura che l'unica soluzione, non potendo mettere le mani sul 
database, sia ripassare il codice per inserire i controlli opportuni :-(
Se, però, hai qualche idea meno laboriosa ...
Grazie,
Ciao, Lino

 Ciao, Lino
Andrea

Non sono riuscito a farlo ieri:
Grazie della disponibilità e auguri di un buon anno 2006.
Ciao, Lino