Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [JAVA] Recupero dati da DB SQLite con gestione tipo dateTime...

    Ciao a tutti!

    Vorrei porvi una questione sulla quale mi sto interrogando da qualche giorno, magari potete avere qualche spunto utile, data la mia scarsa esperienza nell'ambito...

    In sostanza, la questione è presto detta:
    io mi trovo ad operare con un DB SQLite di dati raccolti da sensori di svariata tipologia per un lungo periodo di tempo (mesi), tale per cui ogni dato acquisito dal sensore è stato memorizzato inserendo un timestamp (di tipo dateTime in SQL) rappresentante ovviamente data e ora.
    Quello che io mi domando è:
    è possibile, secondo voi, creare un programma Java che stabilisca un timestamp iniziale (uguale praticamente alla data e ora in cui i sensori sono stati attivati, quindi non a quella corrente) e lo faccia progredire in modo tale da andare pari passo con il passare reale del tempo, continuando a confrontare quel suddetto timestamp iniziale con i timestamp di ciascun dato memorizzato nel DB (ovviamente dopo averli restituiti in un resultset con una select) restituendo quel determinato valore ogni qualvolta i due timestamp coincidono?

    In sostanza:

    fisso timestampIniziale = 2012-06-27 15:14:10.4

    confronto:
    timestampIniziale = timestamp di i-esima tupla del DB?
    SI => restituisco campo "valore" della tupla
    NO => aggiorno timestampIniziale, e riitero con la tupla i+1

    In pratica vorrei simulare quello che i sensori fecero nel momento in cui inserirono i dati nel DB, con quella particolare sequenza temporale, e senza utilizzare un sistema sincrono e regolare per leggere i dati dal DB...(ad esempio leggendo una tupla ogni 10 secondi).

    Non so neppure se sia fattibile...ma secondo voi è possibile come idea?
    Grazie mille già da ora dell'aiuto, e scusate se sono stato un po' troppo prolisso...

  2. #2

    Re: [JAVA] Recupero dati da DB SQLite con gestione tipo dateTime...

    Originariamente inviato da Fabio85vr
    In sostanza:

    fisso timestampIniziale = 2012-06-27 15:14:10.4

    confronto:
    timestampIniziale = timestamp di i-esima tupla del DB?
    SI => restituisco campo "valore" della tupla
    NO => aggiorno timestampIniziale, e riitero con la tupla i+1
    Scusami ma non capisco una cosa: quando il confronto non va a buon fine e aggiorni il timestamp, quale valore vuoi che abbia il prossimo timestamp? Vuoi che scorra nel tempo, tipo 2012-06-27 15:14:10.5?

  3. #3
    Intanto grazie mille della risposta.
    Eh se fosse possibile sì...vorrei proprio che scorresse pari passo con lo scorrere del tempo...ma non so se tecnicamente sia fattibile

  4. #4
    codice:
    Intanto grazie mille della risposta.
    Figurati, si tenta di dare una mano per quello che si può.

    codice:
    Eh se fosse possibile sì...vorrei proprio che scorresse pari passo con lo scorrere del tempo...ma non so se tecnicamente sia fattibile
    A occhio mi verrebbe in mente di utilizzare un timer, dove il timestamp 2012-06-27 15:14:10.4 sarà il momento in cui lo farai partire, quindi l'istante t0 = 0 sec.

    Poi confronterai il timer con la differenza tra il secondo timestamp e il primo. In modo da non utilizzare i timestamp come date ma come intervalli di tempo.

    Non so se hai capito cosa intendo dire..

  5. #5
    Grazie davvero...

    In sostanza, intenderesti creare un timer (impostato e fatto partire quando lancio il programma) e vederlo come una misura del tempo intercorso tra il primo timestamp e i vari timestamp delle varie tuple? Ho capito bene?
    Quindi poi confronterei (fino ad esaurimento di tuple nel recordset) la differenza data da (timestamp di ogni singola tupla - primo timestamp) con il timer?
    Il timer che unità di misura rappresenterebbe? Millisecondi?

  6. #6
    L'idea che io mi ero prefissato, come cercavo di spiegare con qualche difficoltà, era proprio il poter definire un dateTime e aggiornarlo di volta in volta di pari passo con lo scorrimento del tempo reale...agendo proprio sul tipo dateTime e, che so, sommandogli il tempo che passa...boh...non so appunto se sia fattibile qualcosa di simile...

    Come dire...
    supponiamo che questo programma Java che intendo realizzare agisca come fosse un web service che mi restituisce i dati del DB, uno alla volta, e che poi su ciascuno di questi dati io debba fare qualche operazione...ciò che vorrei è che questi dati fossero restituiti con una "cadenza temporale" pari a quella reale (praticamente asincrona) non con una cadenza regolare tipo quella data da un polling (quindi sincrona).

    Mi rendo conto sia difficile da spiegare bene...

  7. #7
    Originariamente inviato da Fabio85vr
    Grazie davvero...

    In sostanza, intenderesti creare un timer (impostato e fatto partire quando lancio il programma) e vederlo come una misura del tempo intercorso tra il primo timestamp e i vari timestamp delle varie tuple? Ho capito bene?
    Quindi poi confronterei (fino ad esaurimento di tuple nel recordset) la differenza data da (timestamp di ogni singola tupla - primo timestamp) con il timer?
    Il timer che unità di misura rappresenterebbe? Millisecondi?
    Esatto, che io sappia c'è la funzione

    codice:
    System.currentTimeMillis()
    che ti da il tempo corrente in millisecondi, così puoi fissare questo come istante iniziale.

    Effettivamente il tuo è un problema abbastanza intricato.

  8. #8
    Originariamente inviato da Colla87
    Esatto, che io sappia c'è la funzione

    codice:
    System.currentTimeMillis()
    che ti da il tempo corrente in millisecondi, così puoi fissare questo come istante iniziale.

    Effettivamente il tuo è un problema abbastanza intricato.
    Ah sì, giusto. Ricordo quella funzione...
    In sostanza io dovrei creare un ciclo che scorra il resultset e continuare a richiamare quella funzione, da te citata, per aggiornare il tempo corrente e confrontarlo con la differenza tra i timestamp. Corretto?

  9. #9
    Originariamente inviato da Fabio85vr
    Ah sì, giusto. Ricordo quella funzione...
    In sostanza io dovrei creare un ciclo che scorra il resultset e continuare a richiamare quella funzione, da te citata, per aggiornare il tempo corrente e confrontarlo con la differenza tra i timestamp. Corretto?
    Esatto, l'ho pensata così.
    Probabilmente dovrai fare un'approssimazione dei timestamp che hai nel db al secondo, altrimenti con i millisecondi non fai in tempo a fare il confronto.

  10. #10
    Giusto, già sarà difficile gestire i secondi...

    Vedrò se riesco a combinare qualcosa!
    Intanto, ti ringrazio...se poi ti venisse in mente qualche ulteriore lampo di genio, visto che ne capisci enormemente più di me, sarà ben accetto!

    Grazie ancora, ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.