Firebird 1.0 em rede (problemas também)
Caros amigos,
Já lí aqui no forum várias mensagens sobre a configuração do interbase/firebird em rede, e acabei concluindo que a melhor maneira de fazer a conexão funcionar é criar um arquivo .INI com a localização do banco de dados:
alice.ini
-------
[Geral]
Banco de Dados=192.168.1.2:c:\alice\Alice.gdb
---------
E no oncreate do datamodule fazer a leitura do .INI e conectar o banco com:
db.DatabaseName := myINI.ReadString(´Geral´, ´Banco de Dados´, ´alice.gdb´);
No INI servidor uso:
banco de dados=c:\alice\alice.gdb
No INI das estações uso:
banco de dados=192.168.1.2:c:\alice\alice.gdb
Estou testando na estação 192.168.1.15 que localiza o servidor com ping serv1, que responde 192.168.1.2 corretamente.
Porém o banco de dados não abre na estação. Surge uma mensagem indicando que não conseguiu localizar o banco de dados em ´192.168.1.2:c:\alice\alice.gdb´
No servidor o banco abre perfeitamente.
Tenho firebird 1.0 instalado e rodando no servidor. Preciso do firebird na estação?
O que mais posso tentar?
Já lí aqui no forum várias mensagens sobre a configuração do interbase/firebird em rede, e acabei concluindo que a melhor maneira de fazer a conexão funcionar é criar um arquivo .INI com a localização do banco de dados:
alice.ini
-------
[Geral]
Banco de Dados=192.168.1.2:c:\alice\Alice.gdb
---------
E no oncreate do datamodule fazer a leitura do .INI e conectar o banco com:
db.DatabaseName := myINI.ReadString(´Geral´, ´Banco de Dados´, ´alice.gdb´);
No INI servidor uso:
banco de dados=c:\alice\alice.gdb
No INI das estações uso:
banco de dados=192.168.1.2:c:\alice\alice.gdb
Estou testando na estação 192.168.1.15 que localiza o servidor com ping serv1, que responde 192.168.1.2 corretamente.
Porém o banco de dados não abre na estação. Surge uma mensagem indicando que não conseguiu localizar o banco de dados em ´192.168.1.2:c:\alice\alice.gdb´
No servidor o banco abre perfeitamente.
Tenho firebird 1.0 instalado e rodando no servidor. Preciso do firebird na estação?
O que mais posso tentar?
Aerreira
Curtidas 0
Respostas
Rodolpho123
24/09/2004
Se vc não instalou, tem que instalar o FB client nas estações..
GOSTEI 0
Vinicius2k
24/09/2004
Além do que o Rodolpho mencionou, no servidor use :
[b:767dad3cf0]localhost:c:\alice\Alice.gdb[/b:767dad3cf0]
E lembre-se de setar a propriedade [b:767dad3cf0]AllowStreamedConnect[/b:767dad3cf0] do IBDatabase para [b:767dad3cf0]False[/b:767dad3cf0]
T+
[b:767dad3cf0]localhost:c:\alice\Alice.gdb[/b:767dad3cf0]
E lembre-se de setar a propriedade [b:767dad3cf0]AllowStreamedConnect[/b:767dad3cf0] do IBDatabase para [b:767dad3cf0]False[/b:767dad3cf0]
T+
GOSTEI 0
Aerreira
24/09/2004
Além do que o Rodolpho mencionou, no servidor use :
[b:1af038d771]localhost:c:\alice\Alice.gdb[/b:1af038d771]
E lembre-se de setar a propriedade [b:1af038d771]AllowStreamedConnect[/b:1af038d771] do IBDatabase para [b:1af038d771]False[/b:1af038d771]
T+
Já tentei com localhost e não funcionou.
Estou usando Firebird 1.0 e Delphi 5, no componente IBDatabase não existe a propriedade AllowStreamedConnect !
Quanto ao cliente firebird nas estações, ele foi instalado, mas pergunto: não precisa executar nada na inicialização do windows para que o client seja carregado ?
GOSTEI 0
Gandalf.nho
24/09/2004
Atualize seu o IBX e sugiro tentar usar o componente IBDataBaseINI (disponível após atualização). Pegue o IBX em [url]http://codecentral.borland.com/codecentral/ccweb.exe/author?authorid=102[/url]
GOSTEI 0
Vinicius2k
24/09/2004
Já tentei com localhost e não funcionou.
No servidor, TEM que funcionar.
Estou usando Firebird 1.0 e Delphi 5, no componente IBDatabase não existe a propriedade AllowStreamedConnect !
Proceda a atualização do IBX, conforme indicado pela ganldalf.
Quanto ao cliente firebird nas estações, ele foi instalado, mas pergunto: não precisa executar nada na inicialização do windows para que o client seja carregado ?
Absolutamente nada. O Cliente é, basicamente, a DLL [b:8787094a65]gds32.dll[/b:8787094a65]
A instalação do client faz mas uma coisa importante, que é a alteração do arquivo [b:8787094a65]SERVICES[/b:8787094a65], acrescentando a linha :
[b:8787094a65]gds_db 3050/tcp[/b:8787094a65]
ao final do arquivo, verifique se esta linha foi adicionada.
Qual o O.S da(s) estação(ões) e do Servidor?
GOSTEI 0
Aerreira
24/09/2004
Qual o O.S da(s) estação(ões) e do Servidor?
Tudo Win98 SE.
Vou fazer a atualização do IBX e verificar a configuração do Client.
O ´IBX 5.04 for D5 (SP1)´ requer o SP1 do Delphi 5 - onde consigo?
GOSTEI 0
Aerreira
24/09/2004
Vou fazer a atualização do IBX e verificar a configuração do Client.
O ´IBX 5.04 for D5 (SP1)´ requer o SP1 do Delphi 5 - onde consigo?
Ok, já estou com Delphi 5 Update Pack 1 e IBX 5.04 instalados e funcionando bem. Propriedade allowStreamedConnected = false.
Sistema funcionando bem em modo local, segunda feira farei testes no ambiente de rede do cliente.
GOSTEI 0
Aerreira
24/09/2004
Ok, já estou com Delphi 5 Update Pack 1 e IBX 5.04 instalados e funcionando bem. Propriedade allowStreamedConnected = false.
Sistema funcionando bem em modo local, segunda feira farei testes no
ambiente de rede do cliente.
Sistema funcionando bem em modo local, segunda feira farei testes no
ambiente de rede do cliente.
Não funcionou. O banco está em 192.168.1.15:c:\alice\alice.gdb
Acho que o problema é que estou primeiro testando se o banco está lá com:
if not fileexists(myINI.ReadString(´Geral´, ´Banco de Dados´, ´alice.gdb´)) then
E a função fileexists não está encontrando. Vou executar linha de conexão (abaixo) sem o teste do fileexists. Porque o filexists não funciona informando o IP ?
db.DatabaseName := myINI.ReadString(´Geral´, ´Banco de Dados´, ´alice.gdb´);
GOSTEI 0
Vinicius2k
24/09/2004
Porque o filexists não funciona informando o IP ?
Porque realmente não existe... este não é um caminho (UNC) válido ...
Para o teste ter sucesso vc teria q fazer :
1. Compartilhar a unidade. (Isso é péssimo) ou no mínimo a pasta onde se encontra o gdb. Note que compartilhamentos compromentem MUITO a segurança e são totalmente desnecessários com o IB/FB.
2. O nome do arquivo para testar teria que ser : \\192.168.1.15\c\alice\alice.gdb
O que deve estar lhe confundindo é a obrigação de informação do path completo do arquivo. Entenda dessa forma...
Vc diz ao Client :
´Quero acessar o serviço gds_db do servidor [b:ee7625172a]192.168.1.15[/b:ee7625172a] e nele conectar-me ao banco [b:ee7625172a]c:\alice\alice.gdb[/b:ee7625172a]´
Esta é uma ilustração para traduzir o quer dizer a linha 192.168.1.15:c:\alice\alice.gdb
GOSTEI 0