Hello folks!
Vez por outra somos surpreendido por alguns erros nas nossas aplicações MS Access, os quais não fazemos ideia do que 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 1000000 ou algo maior do que 10000 (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.5
Personalizando configurações do Registro do Windows para Microsoft Jet
Pois é, desse erro você já se livrou . . . Mas . . . outros virão...
Nenhum comentário:
Postar um comentário