[firebase-br] Solucao de problema do InterBase no XP

Paulo psdlistdisc em terra.com.br
Seg Out 17 16:23:29 -03 2005


Pessoal:

Em diversas listas, desde alguns meses,
tenho perguntado sobre um problema que
ocorre em algumas maquinas XP, no acesso
ao InterBase (e no Firebird tambem, segundo
me falaram).

Encontrei a solucao, e gostaria de compartilhar
com voces.


Descricao do Problema
---------------------------------------------

Em algumas maquinas XP de meus clientes, depois que as máquinas
passam por alguma atualização (Windows Update, do site da Microsoft),
elas param de acessar o INTERBASE e aparece uma mensagem semelhante
a esta:

> Excecao EDBEngineError no modulo SISPROD.exe em 0006A9E6.
> Unknown database.
> Unable to complete network request to host "SERVIDOR".
> Failed to locate host machine.
> Undefined service gds_db/tcp.
> Alias: BD_SISTEMA

Eu utilizo BDE, mas mensagem semelhante aparece tambem no IBConsole
do InterBase, o que significa que o problema nao e' do BDE.  Alem disso,
o micro acessa normalmente a rede, mapeia drivers do servidor,  e o
arquivo "services" (em C:\WINDOWS\SYSTEM32\DRIVERS\ETC) esta'
devidamente configurado, tanto na estacao problematica como no
servidor.


Solução
------------------------------

- Por algum motivo, o Windows Update modifica o tipo de uma chave
no registro, e entao o Windows nao mais consegue encontrar
o arquivo "services".   Proceder como segue, na maquina que
apresentar a mensagem descrita anteriormente:

- Iniciar/Executar
- Digitar REGEDIT
- No lado esquerdo da tela, abrir os seguintes ítens:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

- Confirmem no rodapé da tela do REGEDIT, se realmente
abriram corretamente esse trecho da árvore do registro.  Cuidado,
pois há ítens na árvore de registro que aparecem em diversos locais
diferentes
do que mostrei acima.

- Depois de abrir a árvore do registro até este ponto, no lado DIREITO
da tela você deve procurar a seguinte item:  DataBasePath

- Clicar com o botão "direito" sobre o item DataBasePath e selecionar
"renomear" (confirme se realmente clicou em DataBasePath, e não em outra
chave)

- Mudar o nome da chave DataBasePath para DataBasePathOLD
(ou qualquer outro nome)

- Ainda no lado direito da tela, clicar em uma área EM BRANCO
(FORA DE QUALQUER CHAVE JÁ EXISTENTE)

- Clicar na opção "Novo" e escolher
"Valor de sequencia expansível" (em inglês deve ser
"Expandable String Value")

- Informar o nome DataBasePath (exatamente como escrevi aqui)

- Uma nova chave do tipo REG_EXPAND_SZ será criada

- Executar um clique-duplo sobre a chave DataBasePathOLD
- Selecionar o valor (provavelmente estará assim:
%SystemRoot%\System32\drivers\etc )
- CTRL+C
- Executar um clique-duplo sobre a chave DataBasePath
- CTRL+V

Obs.:  O "etc" acima realmente e' o nome da pasta, e nao um "etc."
que se costuma usar para evitar enumerar uma lista grande de itens.

- Fechar o REGEDIT e tentar acessar o servidor InterBase.

Se o problema de conexao realmente estiver relacionado ao que
mencionei acima, isso deverá resolver o problema.


Paulo





Mais detalhes sobre a lista de discussão lista