Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Acess e Ado - Transazioni grosso problema
lunedì 02 febbraio 2009 - 20.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
fmazinga
Profilo
| Newbie
1
messaggi | Data Invio:
lun 2 feb 2009 - 20:47
Ciao a tutti,
spero che qualcuno possa aiutarmi, perche' non so piu' come risolvere il problema.
Ho creato due db, uno (che sta su un server) dove e' presente la tabella che contiene delle pratiche da lavorare, un secondo db (che punta al primo tramite tabella linkata) che utilizzaranno gli impiegati per lavorare le pratiche.
Il problema principale e' non far pescare la stessa pratica a persone diverse, per fare questo mi sono affidato alle transazioni di Ado.
La logica che applico nel momento in cui gli impiegati cliccano sul tasto per prelevare la pratica e la seguente:
- Creo la connessione ado al db
- Apro la connessione
- Avvio la transazione tramite il metodo begintrans
- Imposto il livello di isolamento in serializable
- tramite strina sql estraggo la prima pratica che soddisfa i miei filtri (data creazione pratica, campo nomeutente=nullo)
- quindi faccio l'update del campo username con il nome utente dell'impiegato per assegnargli la pratica dove il campo id pratica e' uguale a quello del record della query precedente
- termino la transazione tramite il metodo committrans
ebbene nonostante tutto, testando su due pc diversi, se clicco contemporaneamente sul tasto che preleva le pratiche nello stesso momento, ottengo la stessa identica pratica da lavorare.
A questo punto perche la transizione non mi funziona? in teoria dovrebbe comunque accodare le oprazioni, ovvero finche' non ne ho finita una non dovrebbe iniziare l'altra (a maggior ragione visto che ho anche impostato il livello di isolamento a serializable) e quindi una volta che ho assegnato una pratica ad un impiegato , dovrebbe scattare l'altra assegnazione che dovrebbe scartarmi quella gia' assegnata visto che quando prelevo le pratiche da assegnare la query preleva la prima che ha il campo nomeutente vuoto.
Vi prego aiutatemi perche' non so piu' dove sbattere la testa, e come se la transizione non esistesse e il db facesse la select della prima pratica disponibile in base ai miei filtri contemporaneamente a tutte le richieste il che provoca il prelevamento della stessa pratica ad utenti diversi.
Dimenticavo uso access 2003 e Ado 2.8
Grazie mille a chi potra' risolvermi questo (per me) grossissimo problema.
Torna su
Stanze Forum
Elenco Threads
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 !