Durante o desenvolvimento de aplicações em Delphi, utilizando a BDE (Borland Database Engine) para se conectar com as bases de dados, é bastante comum a ocorrência de alguns erros relacionados à memória, principalmente em sistemas operacionais mais recentes como Windows Vista e Seven.

Vejamos então os dois principais erros desse tipo e como solucioná-los.


Shared memory conflict - $210D

Traduzindo para português, trata-se de um erro de “conflito de compartilhamento de memória” e ocorre porque a BDE está tentando acessar um endereço da memória que já está sendo utilizado por outra aplicação ou pelo próprio sistema operacional.

Para solucionar este problema, feche todas as aplicações que estejam utilizando a BDE e siga os passos a seguir:

1) Acesse o BDE Administrator pelo Painel de Controle ou diretamente no executável BDEADMIN na pasta da Borland.

2)Na tela de administração, há uma estrutura de árvore na esquerda. Expanda o item raiz “Configuration”, em seguida, o item “System”. Por fim, clique no item “INIT”, conforme mostra a Figura 1.

Aba Configuration no BDE Administrator
Figura 1: Aba Configuration no BDE Administrator

3) Na guia do lado direito, busque o parâmetro SHAERDMEMLOCATION e altere seu valor para 5BDE, conforme mostra a Figura 2.

Alterando a propriedade SHAREDMEMLOCATION
Figura 2: Alterando a propriedade SHAREDMEMLOCATION

4) Para salvar as alterações, clique no menu “Object” na barra superior e em seguida na opção “Apply”. Ao ser questionado se deseja salvar todas as alterações (Save all edits to INIT), confirme clicando em Ok.

Pronto, agora abra novamente sua aplicação que utiliza a BDE para verificar se o erro foi corrigido.

Insufficient memory for this operation – $2501

Em português, “memória insufuciente para esta operação”. Esta mensagem indica que alguma aplicação (que utiliza a BDE) está consumindo toda memória disponível para a BDE.

O procedimento para resolver este problema é bastante semelhante ao anterior, porém, desta vez você deve alterar a propriedade SHAREDMEMSIZE para 4096, como mostra a Figura 3 a seguir.

Alterando a propriedade SHAREDMENSIZE
Figura 3: Alterando a propriedade SHAREDMENSIZE

Com isso você está definindo que uma maior quantidade de memória poderá ser usada pelas aplicações que acessam bancos de dados através da BDE.

Feito isso, repita os passos para gravar as alterações e então você já poderá testar novamente sua aplicação e verificar se o erro foi corrigido.

Caso a definição destes valores não resolva o problema, existem mais algumas opções que podem ser testadas. Por exemplo, mantenha a propriedade SHAREDMEMSIZE em 4096 e altere a SHAREDMEMLOCATION para “0x5BDE”. Se ainda não resolver, experimente alterar a SHAREDMEMSIZE para 8192. Persistindo o problema, você ainda poderá tentar usar um dos valores das faixas definidas em cada sistema operacional para a SHAREDMEMLOCATION: para Windows 95 ou 98, valores entre 9000 e FFFF e para Windows NT ou superior, valores entre 1000 e 7F00.

Esses são alguns passos que já resolveram os problemas citados em vários casos, tendo sido confirmados por usuários que os utilizaram, assim sendo, espero que este conteúdo também possa ajudar a você, leitor.

Um abraço e até a próxima.