Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET] ado e piccola paginazione

Ciao a tutti.
Sto' sbattendo la testa con 
ado.net
 e la gestione della concorrenza.
Infatti la modalità disconessa crea non pochi problemi in tal senso...da 
perderci la testa.
Non esistendo un metodo unico per gestire la concorrenza, stò cercando di 
pensare a come fare per ridurre la possibilità che si verifichi tale 
ipotesi.
A tal proposito volevo chiedere se secondo voi possa essere conveniente una 
paginazione ridotta ai minimi termini, e cioè ad un record(magari attraverso 
un overload del metodo fill).
E' chiaro che aumento l'uso della connessione, ma ottengo come effetto 
principale quello di avere allineati i record originali con quelli presenti 
nel db, evitando quindi eventuali risincronizzazioni successive. Inoltre 
dovrei ridurre drasticamente la possibilità di avere un conflitto. E' chiaro 
non elimino completamente il problema concorrenza, ma lo semplificherei e 
non di poco, anche dal punto di vista della sua gestione.
Voi che dite?
O sono troppo stanco ;-)  ??
Umbe 

 ipotesi.
vedi se ti interessa:
http://groups.google.it/group/it.comp.lang.visual-basic/browse_thread/thread/b6bcada5f31ea100/62cf2bbebe24e32b?q=giuseppeD+ADO.NET+ADO&rnum=35#62cf2bbebe24e32b
Ave
giuseppeD
---
CCR
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Lo avevo giŕ letto, grazie cmq!
Umbe 

 Infatti la modalità disconessa crea non pochi problemi in tal senso...
Non capisco. Cosa intendi per "problemi di concorrenza" e in cosa la
modalità disconnessa te li crea / peggiora?
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)


 modalità disconnessa te li crea / peggiora?
A mio avviso la natura stessa della modalità disconessa peggiora il problema 
della concorrenza.
Il dataset disconnesso lo vedo come una specie di repository lato client di 
dati.
Due o piu' utenti, avendo due dataset distinti, fino a quando non ripopolano 
le tabelle, non si accorgono delle modifiche fatte da altri.
E' un problema di sincronizzazione. Tu sai meglio di me che lavorando in 
modalità disconnessa, hai praticamente 3 "riferimenti"(diciamo cosi') allo 
stesso record:
1) quello persistente sul db
2) quello del dataset originale (che si ha appena invochi fill)
3) quello corrente (che potrebbe essere uguale all'originale) oppure no.
Quando chiami update, per rendere persistenti le modifiche, se 1 e 2 
coincidono,..tutto ok.
Se sono differenti iniziano i dolori. Se un altro utente ha modificato il 
dato nel db, .Net solleva una eccezione, che posso gestire con un 
try/catch..oppure con l'evento RowUpdated(meglio).
Se però volessi evitare l'eccezione (che solo per gestirla devo scrivere un 
sacco di codice), devo risincronizzare il mio dataset con i dati sul db.(in 
pratica torno ad avere 1=2). E questo solo per una modifica!Non considero un 
delete o insert.
E la sincronizzazione (col metodo fill) è esplicita.
Quando allora chiamare questa sincronizzazione?
Tutto (??) qui.
Umbe 

 pratica torno ad avere 1=2). E questo solo per una modifica!
Di solito, agisco in modo molto draconiano: l'ultimo che arriva ha
ragione. Con i DataAdapter puoi fare in modo che l'operazione di modifica
dei dati abbia successo anche se i dati, nel frattempo, sono stati
modificati da qualcun altro. E' evidente che non in tutti casi puoi fare
così, ma con .net hai la possibilità di definire quale deve essere il
comportamento dell'applicazione in ciscuno dei casi possibili.
Certo, c'è da scrivere un po' di codice.


 Certo, c'č da scrivere un po' di codice.
Puoi dire un bel po' di codice...gestirsi tutte le possibilitŕ in un 
master-detail č un BEL po' di codice....
Comunque non metto in dubbio la versatilitŕ di ado.net...non mi dispiace...a 
parte stŕ concorrenza che forse potrebbe essere gestita in maniera piu' 
elegante....
Umbe 

 master-detail è un BEL po' di codice...
Però, se lo scrivi bene, puoi scriverlo una volta per tutte, e più o meno
dimenticartelo.


 dimenticartelo.
Infatti...la mia intezione era proprio di farmi un bel controllone tutto mio 
che facesse tutto il lavoro sporco...
Grazie ancora
Umbe
ps.
Tu dell'idea della paginazione al minimo che ne dici? Fà cosi' schifo??

 Tu dell'idea della paginazione al minimo che ne dici? Fà cosi' schifo??
Per quello che ne ho capito, mi sembra bruttina anzichè no, ma non sono
propriamente una autorità in materia.
