Perchè il Contatore di Access può sballare in multi-utenza.Originariamente inviato da alka
Perché non dovrebbe essere utilizzato?![]()
Quando lo usai all'inzio mi ritrovai più di qualche record che avevano lo stesso numero.
Che è appunto il problema segnalato nel seguente articolo:
HOW TO Implement Multiuser Custom Counters in Jet 4.0 and ADO 2.1
http://support.microsoft.com/default...b;EN-US;240317
che recita:
Because the Microsoft Jet database engine has a read cache and lazy writes, you can get duplicate values in your custom counter field if two applications add records in less time than it takes for the cache to refresh and the lazy-write mechanism to flush to disk. This article presents a method that takes these factors into account.
Il problema è che l'articolo richiede:![]()
- una tabella-contatore 'supplementare' per ogni tabella del database
(non proprio agevole)
- il campo contatore deve già esistere (bisogna aggiungerlo a manina)
- se la tabella non è vuota, bisgona impostare il valore di ogni contatore a mano!!!
Invece nel mio progetto mostro come ho perfezionato la tecnica suggerita dall'articolo:![]()
- basta una sola tabella per tutti i contatori
- se il campo contatore non esiste viene creato automaticamente
- se la tabella non è vuota, viene utilizzato il progressivo corretto
Così è molto più pratico, lo sviluppatore non si deve preoccupare di niente, se non di ricava l'ID con l'apposita funzione.![]()
Mai più avuto problemi.
![]()