Come posso testare se il Database è stato aggiornato di recente?

giovedì 17 aprile 2008 - 14.55

pchiaramonte Profilo | Newbie

Spiego meglio,
ho creato una applicazione utilizzzata da una gruppo di utenti, il cui scopo è soprattutto quello di condividere delle segnalazioni che ognuno di loro può scrivere sul database;

ho inserito una funzione che a scansioni di tempo predefinito vanno al leggere il database ed aggiornano le informazioni visualizzate dai diversi utenti; quello che vorrei è che la lettura del database fosse fatta solo se necessaria, cioè solo se dall'ultima lettura ci sono state degli aggiornamenti (insert o update)

Scusate se non sono stato troppo chiaro!

Grazie

Lanello Profilo | Senior Member

secondo me il sistema che utilizzi è quello giusto, per limitare il traffico dati e l'impoegno del database server, ti merita fare una query sull'ultimo ID della tabella inserita...

te lo spiego con la funzione che mi viene meglio...

(il codice è vb.net)

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra




-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.

alx_81 Profilo | Guru

@pchiaramonte
Ciao, prima cosa: che DBMS utilizzi?
Parlando in generale, personalmente, ogni qual volta si inseriscano, modifichino, cancellino delle righe andrei a notificare in una ulteriore tabella (ad esempio con le informazioni TABELLA e STATO ) l'avvenuto aggiornamento. In seguito, prima di leggere i dati, controllo quest'ultimo oggetto filtrando sul campo TABELLA per sapere lo stato della tabella stessa.
Inoltre aggiungerei una tabellina degli stati (Aggiornata, Inserimento effettuato, Cancellazione effettuata) ed andrei a modificare il valore del campo STATO (sulla tabella indicata sopra) nelle varie procedure di inserimento, cancellazione, modifica o tramite TRIGGER (uno per ogni tabella che devi controllare).

@lanello
Attenzione. Se controlli solo l'ultimo ID ottieni solo le ultime inserite ma non gestisci le update e/o le cancellazioni (che non siano dell'ultimo record). Inoltre, ti esorto ad utilizzare e consigliare le query parametriche, non le concatenazioni, che sono ancora un punto di debolezza di molte applicazioni (vedi SQL Injection).

>Grazie
di nulla!
Ciao a tutti!

Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

Lanello Profilo | Senior Member

>@lanello
>Attenzione. Se controlli solo l'ultimo ID ottieni solo le ultime
>inserite ma non gestisci le update e/o le cancellazioni (che
>non siano dell'ultimo record). Inoltre, ti esorto ad utilizzare
>e consigliare le query parametriche, non le concatenazioni,
>che sono ancora un punto di debolezza di molte applicazioni (vedi
>SQL Injection).

Grazie mille Alessandro conosco bene i limiti delle concatenazioni, ma visto del "livello" al quale stavamo parlando ho preferito consigliare il modo più semplice, e per il discorso degli ID io avevo capito che voleva controllare solo i nuovi inserimenti... cmq hai spiegato benissimo tu il modo da utilizzare.



Ciao!

-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.

alx_81 Profilo | Guru

>Grazie mille Alessandro conosco bene i limiti delle concatenazioni,
>ma visto del "livello" al quale stavamo parlando ho preferito
>consigliare il modo più semplice, e per il discorso degli ID
>io avevo capito che voleva controllare solo i nuovi inserimenti...
>cmq hai spiegato benissimo tu il modo da utilizzare.
Ok, scusa se mi sono intromesso, ma a mio avviso evitare sempre la concatenazione è buona norma, e quando le vedo, è più forte di me, devo scrivere la frase sulle query parametriche
Comunque sia tutto ok!

Ciao! e grazie a te.
Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5