PDA

Visualizza la versione completa : delphi, ankora con l'ora....


puf
19-05-2004, 12:03
ciao Alka, so ke sarai tu a risp.
dunque....domanda, tu mi hai detto di utilizzare time x trovare l'ora del sistema, qst l'ho fatto, ora ho l'ora, solo ke adesso devo fare una verifica con delle ore in una banca dati, x esempio ho la lezione ke komincia alle 8.20 e finisce alle 9.50, beh io devo fare un controllo così da poter mostrare in ke aula mi trovo, ma kome faccio a fare sto controllo???? con dei componenti ADO o con una funzione???
cio e grazie.....puf :ciauz:

puf
19-05-2004, 14:33
volevo anke aggiungere ke il mio sore mi fa di utilizzare Locate, ma ke è e come si utilizza mika l'ho capito......

alka
19-05-2004, 14:36
Il messaggio è veramente contorto... :)

Vediamo se ho capito bene...data una certa data e ora del giorno, tu vorresti sapere in quale aula ti trovi?

Supponendo che tu abbia una tabella composta da record che definiscono un intervallo di tempo (indicato da ora inizio e ora fine), potresti costruire una query SQL che reperisca tutti i record che hanno un'ora di inizio minore di quella specificata e un'ora di fine maggiore di quella specificata; in poche parole, che l'ora sia compresa tra questi due limiti che definiscono l'intervallo temporale.

Per eseguire la query, puoi usare il componente ADOQuery; non posso essere preciso poichè provo un odio viscerale per i componenti ADO, ma nella proprietà CommandText potresti inserire qualcosa del tipo


SELECT * FROM NomeTabella WHERE (OraCorrente BETWEEN OraInizio AND OraFine)

In questo modo, ottieni tutti i record che comprendono l'ora specificata all'interno del proprio intervallo temporale di riferimento.

Per definire i parametri OraCorrente, OraInizio, OraFine, ecc. puoi usare la proprietà Parameters del componente ADOQuery (leggi la Guida in linea al riguardo).

La tabella può essere associata ad un controllo visuale data aware (DBGrid, DBEdit e così via...) oppure "navigata" usando i metodi di cui sono dotati tutti i DataSet in Delphi: First, Next, Prior, Last e altro ancora (anche in questo caso, consulta la Guida in linea per maggiori informazioni su significato e ambiti d'uso).

Ciao! :ciauz:

puf
19-05-2004, 14:48
ank io ho un odio profondo x i componenti ado...ma nn posso dire niente...per prima cosa grazie x la risposta, secondo so ke le mie frasi sono spesso imcomprensibili, terzo, cioè ke mi hai detto di fare l'ho già fatto e funzia, ma adesso vuole ke faccio sto controllo con una funzione (ho nn so ke è) ke si kiama LOCATE. in delphi help non è ke abbia trovato kissà ke....sto LOCATE so ke vuole i nomi dei campi ke desidero, mettiamo ora inizio ora fine in più devo mettere un VarArray........diciamolo, nn ci caspisco un H con sta funzione.

Locate('campo1;campo2;campo3', VarArrayOf(['', '', '']), []);

ho trovato qst in delphi help! come diavolo funzia??? :dhò:

alka
19-05-2004, 19:00
La funzione Locate non è adatta a questo scopo, poichè permette di localizzare (da qui il nome) un record indicando il campo in cui ricercare e il valore che si desidera trovare.

Se la ricerca va a buon fine, Locate restituisce il valore booleano True e il record correntemente puntato è il primo che corrisponde al criterio di ricerca tra quelli contenuti nel DataSet (tabella, query o altro che sia).

Se il valore restituito è False, allora non è stato trovato alcun record che corrisponde ai criteri (campo e valore) specificati.

Tu non hai a disposizione un valore "preciso" ma un valore a virgola mobile che esprime l'ora, pertanto non è nemmeno possibile compiere una simile ricerca se l'ora di inizio e di fine sono valori TTime.

Loading