Newsgroup: it.comp.lang.vo-clipper
Titolo: Confronto fra date

Ho un .dbf in cui un indicizzazione č data dai campi data+ora (dove data č
un campo di formato date mentre ora č una stringa di 5 caratteri)
Da programma l'utente dovrebbe inserire una data (senza l'ora) e io dovrei
visualizzare tutti i recordo la cui chiave contiene un valore di data
maggiore o uguale a quello inserito da tastiera.
Come posso fare?
Vi prego aiutatemi, č molto URGENTE!
Grazie
Emanuela
--------------------------------
Inviato via 
http://usenet.libero.it

 Vi prego aiutatemi, è molto URGENTE!


Ho provato a fare come dici tu ma non mi estrae i giusti record. Forse ho
sbagliato qualche cosa! Ti scrivo il codice che uso forse puoi aiutarmi un
pochino di più.
Local mDATA1:=ctod(" - - ")
@ 3,33 say "Data Avviso " get mDATA1
if !empty(mDATA1)
  use avvisi index avdata,avnum,avtar,avvia,avstato,avaus shared
  set filter to at(mDATA1,data)>0
  seek(mDATA1)
  mCAMPI := 'dtoc(data)+" "+ora+" ³ "+num+" ³ "+targa+" ³ "+statoav'
  tbdbf(6,1,19,78,"Data ³ Numero Avviso ³ Targa
         ³ ",mCAMPI, "aggiavv","cancavv","modiavv")
endif
Perchè non trova la data? Potrebbe essere un problema il fatto che la chiave
del dbf è composta da dtoc(data)+ora?
AIUTO, GRAZIE


Ho fatto un controllo e la funzione DToS() è presente anche in Clipper.
Ho dimenticato di dire che esiste anche la funzione DToC() ma è sconsigliata
nelle operazioni di ordinamento e confronto.
Paolo

Grazie del tuo aiuto ma sono riuscita a capire che cosa sbagliavo ed ora
funziona!
Il problema non era sulla conversione ma sul fatto che filtravo i record con
la funzione at() usata per le stringe mentre io lavoravo con le date dove
basta usare gli operatori di ><=.


 del dbf č composta da dtoc(data)+ora?



Non è che sia sconsigliata, è che l'ordinamento ottenuto indicizzando
per DToC() non è quello cronologico.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 sballano l'ordinamento.
Non sono gli slash a sballare l'ordinamento ma il fatto che (almeno con
la data italiana) al primo posto (che č quello che conta di piů negli
ordinamenti alfabetici) ci trovi il giorno, che invece dovrebbe contare
di meno.


 ha scritto nel
messaggio news:3E8D860D...@emagsoftware.it...


 ha scritto nel
messaggio news:3E8D86BA...@emagsoftware.it...


 indici su una data servono per creare un ordinamento cronologico.
Allora non è che è sconsigliata o non conveniente. Non serve proprio. I
termini "sconsigliata" e "non conveniente" suggeriscono invece una
minore efficacia rispetto ad altre soluzioni, non una completa
inadeguatezza. Scusa la pignoleria ma le frasi ambigue, specialmente in
informatica, sono spesso fonte di problemi.


 ha scritto nel
messaggio news:3E8DEE67...@emagsoftware.it...


 italiana allora hai ragione.
No, scusa, è inutile che fai lo spiritoso. Non si tratta di essere
precisini. Se tu dici che una cosa è sconsigliata e con questo intendi
dire che quella cosa non serve affatto ad ottenere il risultato che si
voleva allora sbagli termine e basta. Non facevi prima a dire, come
sarebbe normale e ci si aspettava, "Giusto, ho sbagliato termine!".


 ha scritto nel
messaggio news:3E8EC1DE...@emagsoftware.it...


 Inviato via 
http://usenet.libero.it
Prova a scrivere seek(dtoc(mData1))
Ciao.

 il thread.
Non mi pare inutile. E' perfettamente in tema capire bene se abbia senso
creare un indice con DTOC() al posto di DTOS(). A me pare proprio di no.


 > (sconsigliato) è corretto.


 dall'inizio.
Tu hai detto che la DToC() era sconsigliata come chiave per un indice.
Il mio esempio dimostra invece chiaramente che non funziona proprio. Non
si tratta di opinioni. Punto.
