Vez por outra somos surpreendidos por alguns erros nas nossas aplicações MS Access, e em alguns momentos sequer fazemos ideia do que estes sejam (vá se acostumando).
Um dos erros que nos surpreendem, pegando-nos desprevenidos, é o erro 3052 ele aparece quando o número de bloqueios de compartilhamento de arquivos foi excedido, o valor padrão é 9.500. Sem nos apercebermos disso, excedemos o número máximo de bloqueios permitidos em um recordset, este limite é especificado pela definição MaxLocksPerFile no Registro do sistema.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet4.0\MaxLocksPerFile
Como eliminá-lo? Aumente a entrada de registro MaxLocksPerFile, o valor padrão pode ser alterado por meio da edição do Registro com Regedit.exe ou com o método SetOption.
Application.DBEngine.SetOption dbMaxLocksPerFile, <NumLocks>
Altere o <NumLocks> para 1.000.000 ou algo maior do que 10.000 (um milhão poupará você de aplicar esse truque mais vezes) e o erro irá embora. Certifique-se de colocar a linha acima na sua subroutina, e evoque-a a partir do seu FORM principal.
Outros fatores que podem fazer o seu aplicativo atingir este limite são:
* quantidade de memória disponível* tamanho das linhas no recordset* restrições no sistema operacional da rede
Mais detalhes:
Inicializando o driver de mecanismo de banco de dados do Microsoft Jet 3.5Personalizando configurações do Registro do Windows para Microsoft Jet
Nenhum comentário:
Postar um comentário