Ciao a tutti.
Ho bisogno di crearmi una sequenza su database per generare numeri progressivi univoci (p.es. numeri dei preventivi) in ambito concorrente, con diversi processi che accedono allo stesso database anche da computer diversi.
Da C# (dotnet 2.0) uso il driver OleDb con connection-string
Eseguendo prima una SELECT poi una UPDATE (o vice versa) c'è il problema della concorrenza per cui due o più processi possono ottenere lo stesso progressivo.codice:Provider=Microsoft.JET.OLEDB.4.0;data source=c:\percorso\file.mdb
Avendo esperienza con MySql ho pensato subito alla "SELECT ... FOR UPDATE" ma sembra che in Access non ci sia nulla di equivalente.
documentazione mysql
Per il momento ho risolto con un workaround ma sto cercando una soluzione definitiva.
Non posso usare i campi contatore con incremento automatico.
So che esiste la possibilità di aprire il file in modo esclusivo (Exclusive=1 nella connectionstring) ma è una proprietà della connessione mentre a me serve solo nel momento in cui genero il progressivo.
Qualche idea?