Introduzione ai file di blocco (laccdb e ldb) in Access

Introduzione

Il file ".laccdb" o ".ldb" svolge un ruolo importante nello schema multi-utente del motore di database di Microsoft Access. Il file ".laccdb" o ".ldb" viene utilizzato per determinare quali record sono bloccati in un database condiviso e da chi. Il file ".laccdb" viene utilizzato con i database "accdb" e il file ".ldb" viene utilizzato con i database ".mdb". Entrambi i file ".laccdb" e ".ldb" sono comunemente definiti file di blocco.

Creazione ed eliminazione automatica dei file di blocco

Per ogni database aperto per l'utilizzo condiviso, viene creato un file ".laccdb" o ".ldb" per archiviare i nomi dei computer e di sicurezza e per inserire blocchi di intervallo di byte estesi. Il file di blocco ha sempre lo stesso nome del database aperto e si trova anche nella stessa cartella. Se ad esempio si apre il database di esempio Northwind.accdb per uso condiviso in C:\users\<username>\documents\, verrà creato un file denominato Northwind.laccdb nella stessa cartella dei documenti.

Ogni volta che l'ultimo utente chiude un database condiviso, il file di blocco viene eliminato. Le uniche eccezioni sono quando un utente non dispone dei diritti di eliminazione oppure quando il database è contrassegnato come danneggiato. Il file di blocco non viene quindi eliminato perché contiene informazioni sull'utente che stava utilizzando il database nel momento in cui è stato contrassegnato come danneggiato.

Privilegi necessari per la cartella

Se si prevede di condividere un database, il file del database deve trovarsi in una cartella in cui gli utenti dispongono di privilegi di lettura, scrittura, creazione ed eliminazione. Anche se si desidera che gli utenti dispongono di privilegi di file diversi (ad esempio alcuni di sola lettura e alcuni di lettura-scrittura), tutti gli utenti che condividono un database devono disporre delle autorizzazioni di lettura, scrittura e creazione per la cartella. È tuttavia possibile assegnare autorizzazioni di sola lettura al file con estensione accdb o mdb per i singoli utenti pur consentendo autorizzazioni complete per la cartella.

Nota

Se un utente apre un database con accesso esclusivo (facendo clic sulla freccia a destra del pulsante Apri e quindi su Apertura esclusiva), il blocco dei record non viene utilizzato. Di conseguenza, Microsoft Access non tenta di aprire o creare un file di blocco. Se il database viene sempre aperto per uso esclusivo, un utente deve disporre solo dei privilegi di lettura e scrittura per la cartella.

Contenuto del file di blocco

Per ogni persona che apre un database condiviso, il motore di database di Access scrive una voce nel file ".laccdb" o ".ldb" del database. La dimensione di ogni voce è di 64 byte. I primi 32 byte contengono il nome del computer (ad esempio JohnDoe). I secondi 32 byte contengono il nome di sicurezza (ad esempio Admin). Il numero massimo di utenti simultanei supportati dal motore di database di Access è 255. Di conseguenza, le dimensioni del file di blocco non superano mai i 16 kilobyte.

Nota

Anche se una soluzione di file server può supportare fino a 255 utenti simultanei, se gli utenti della soluzione aggiungono e aggiornato spesso i dati, è buona norma che una soluzione di file server di Access non supporti un numero superiore a 25-50 utenti. Per ulteriori informazioni, consultare Capitolo 1: Informazioni sullo sviluppo client/server di Microsoft Access 2000.

Quando un utente chiude un database condiviso, la voce dell'utente non viene rimossa dal file di blocco. Tuttavia, la voce dell'utente potrebbe essere sovrascritta quando il database viene aperto da un altro utente. Ciò significa che non è possibile utilizzare solo il file di blocco per determinare chi sta attualmente utilizzando il database.

Utilizzo del file di blocco

Il motore di database di Access utilizza le informazioni sui file di blocco per impedire agli utenti di scrivere dati nelle pagine o nei record bloccati da altri utenti e per determinare chi dispone di altre pagine o record bloccati. Se il motore di database di Access rileva un conflitto di blocco con un altro utente, legge il file di blocco per ottenere il computer e il nome di sicurezza dell'utente che ha bloccato il file o il record.

Nella maggior parte delle situazioni di conflitto di blocco, viene visualizzato un messaggio generico di tipo "Conflitto di scrittura" che consente di salvare il record, di copiarlo negli Appunti oppure di eliminare le modifiche apportate. Tuttavia, in alcune circostanze, viene visualizzato il seguente messaggio di errore:

Impossibile bloccare la tabella <nome tabella>; attualmente in uso dall'utente <nome di sicurezza> sul computer <nome computer>.

Nota

Lo stato delle informazioni nel file di blocco non influisce sullo stato del database. Se un file di blocco viene danneggiato, tutto il contenuto del database dovrebbe continuare a funzionare correttamente. Tuttavia, nei messaggi di conflitto di blocco è possibile che venga visualizzato testo criptato anziché i nomi degli utenti.

Con Microsoft Visual Basic, Applications Edition, è possibile generare un elenco di utenti connessi a un database specifico. Per ulteriori informazioni su come eseguire questa operazione e sul codice di esempio, consultare Come determinare chi è connesso a un database utilizzando Microsoft Jet UserRoster in Access.