Introdução aos arquivos de bloqueio (laccdb e ldb) no Access

Introdução

O arquivo ".laccdb" ou ".ldb" desempenha uma função importante no esquema de vários usuários do mecanismo de banco de dados do Microsoft Access. O arquivo ".laccdb" ou ".ldb" é usado para determinar quais registros são bloqueados em um banco de dados compartilhado e por quem. O arquivo ".laccdb" é usado com bancos de dados .accdb e o arquivo ".ldb" é usado com bancos de dados ".mdb". Os arquivos ".laccdb" e ".ldb" são comumente chamados de arquivos de bloqueio.

Criação e exclusão automáticas de arquivos de bloqueio

Para cada banco de dados aberto para uso compartilhado, um arquivo ".laccdb" ou ".ldb" é criado para armazenar nomes de computador e segurança e para colocar bloqueios de intervalo de byte estendidos. O arquivo de bloqueio sempre tem o mesmo nome do banco de dados aberto e está localizado na mesma pasta do banco de dados aberto. Por exemplo, se você abrir (para uso compartilhado) o banco de dados de exemplo Northwind.accdb em C:\users\<username>\documents\, um arquivo chamado Northwind.laccdb será criado automaticamente na mesma pasta de documentos.

Sempre que o último usuário fecha um banco de dados compartilhado, o arquivo de bloqueio é excluído. As únicas exceções são quando um usuário não tem direitos de exclusão ou quando o banco de dados é marcado como corrompido. Em seguida, o arquivo de bloqueio não é excluído porque contém informações sobre quem estava usando o banco de dados no momento em que o banco de dados foi marcado como corrompido.

Privilégios de pasta necessários

Se você planeja compartilhar um banco de dados, o arquivo de banco de dados deve estar localizado em uma pasta onde os usuários têm privilégios de leitura, gravação, criação e exclusão. Mesmo que você queira que os usuários tenham privilégios de arquivo diferentes (por exemplo, alguns somente leitura e alguns de leitura-gravação), todos os usuários que compartilham um banco de dados devem ter permissões de leitura, gravação e criação para a pasta. No entanto, você pode atribuir permissões somente leitura ao arquivo .accdb ou .mdb para usuários individuais enquanto ainda permite permissões completas à pasta.

Observação

Se um usuário abrir um banco de dados com acesso exclusivo (clicando na seta à direita do botão Abrir e clicando em Abrir Exclusivo), o bloqueio de registro não será usado. Portanto, o Microsoft Access não tenta abrir ou criar um arquivo de bloqueio. Se o banco de dados sempre for aberto para uso exclusivo, um usuário precisará ter apenas privilégios de leitura e gravação na pasta.

O conteúdo do arquivo de bloqueio

Para cada pessoa que abre um banco de dados compartilhado, o mecanismo de banco de dados do Access grava uma entrada no arquivo ".laccdb" ou ".ldb" do banco de dados. O tamanho de cada entrada é de 64 bytes. Os primeiros 32 bytes contêm o nome do computador (como JohnDoe). Os segundo 32 bytes contêm o nome de segurança (como Admin). O número máximo de usuários simultâneos que o mecanismo de banco de dados do Access suporta é 255. Portanto, o tamanho do arquivo de bloqueio nunca é maior do que 16 quilobytes.

Observação

Embora uma solução de servidor de arquivos possa dar suporte a até 255 usuários simultâneos, se os usuários da sua solução adicionarem com frequência dados e atualizarem dados, é uma boa ideia que uma solução de servidor de arquivos do Access suporte não mais de 25 a 50 usuários. Para obter mais informações, consulte Capítulo 1: Noções básicas sobre o Desenvolvimento de Cliente/Servidor do Microsoft Access 2000.

Quando um usuário fecha um banco de dados compartilhado, a entrada do usuário não é removida do arquivo de bloqueio. No entanto, a entrada do usuário pode ser substituída quando outro usuário abrir o banco de dados. Isso significa que você não pode usar o arquivo de bloqueio sozinho para determinar quem está usando o banco de dados no momento.

O uso do arquivo de bloqueio

O mecanismo de banco de dados do Access usa as informações de arquivo de bloqueio para impedir que os usuários gravem dados em páginas ou registros que outros usuários bloquearam e para determinar quem tem outras páginas ou registros bloqueados. Se o mecanismo de banco de dados do Access detectar um conflito de bloqueio com outro usuário, ele lerá o arquivo de bloqueio para obter o computador e o nome de segurança do usuário que tem o arquivo ou registro bloqueado.

Na maioria das situações de conflito de bloqueio, você recebe uma mensagem genérica "Gravar conflito" que permite salvar o registro, copiá-lo para a Área de Transferência ou remover as alterações feitas. No entanto, em algumas circunstâncias, a seguinte mensagem de erro é exibida:

Não foi possível bloquear o <nome da tabela>; atualmente em uso pelo <nome de segurança> do usuário no <nome do computador>.

Observação

O estado das informações no arquivo de bloqueio não tem relação com o estado do banco de dados. Se um arquivo de bloqueio ficar corrompido, tudo no banco de dados ainda deverá funcionar corretamente. No entanto, você pode ver texto embaralhado em vez de nomes de usuário em qualquer mensagem de conflito de bloqueio.

Com o Microsoft Visual Basic for Applications, você pode fazer a saída de uma lista de usuários que estão conectados a um banco de dados específico. Para obter mais informações sobre como fazer isso e o código de exemplo, consulte Como determinar quem está conectado a um banco de dados usando o Microsoft Jet UserRoster no Access.