Arquivos pra acessar firebird na rede
Ola pessoal!
Quais os arquivos que devo mandar junto com minha aplicacao pra acessar firebird na rede? Estes computadores ja acessam outra base de dados firebird tambem.
obrigado
Quais os arquivos que devo mandar junto com minha aplicacao pra acessar firebird na rede? Estes computadores ja acessam outra base de dados firebird tambem.
obrigado
Eduardo Jr
Curtidas 0
Melhor post
Luiz Vichiatto
29/08/2017
Eduardo, se já existe um sistema que acessa em rede, veja como este outro sistema acessa e faça da mesma forma.
** Atenção ** Cuidado para não colocar o arquivo .FDB na mesma pasta do outro sistema, coloque em uma pasta ou caminho do sistema como se fosse instalar em um computador local.
Então no servidor, o caminho do DB fica:
C:\\Pasta do Sistema\\Banco de Dados\\Meu_Banco_Firebird.fdb
Já nos clients, o caminho fica:
192.168.0.1:C:\\Pasta do Sistema\\Banco de Dados\\Meu_Banco_Firebird.fdb
Onde: 192.168.0.1 é o IP do servidor.
** Atenção ** Cuidado para não colocar o arquivo .FDB na mesma pasta do outro sistema, coloque em uma pasta ou caminho do sistema como se fosse instalar em um computador local.
Então no servidor, o caminho do DB fica:
C:\\Pasta do Sistema\\Banco de Dados\\Meu_Banco_Firebird.fdb
Já nos clients, o caminho fica:
192.168.0.1:C:\\Pasta do Sistema\\Banco de Dados\\Meu_Banco_Firebird.fdb
Onde: 192.168.0.1 é o IP do servidor.
GOSTEI 1
Mais Respostas
Luiz Vichiatto
29/08/2017
Já ia esquecendo, provavelmente terá que compartilhar a pasta do BD.
Não se esqueça de instalar o client do firebird na maquina que for estação.
Não se esqueça de instalar o client do firebird na maquina que for estação.
GOSTEI 0
Eduardo Jr
29/08/2017
Luiz obrigado ...eu fiz como vc falou mas ainda sim nao esta conectando...tenho que por algum arquivo alguma DLL tipo fbclinet.dll midas.dll no diretorio do meu programa? antes de conectar o sqlconnection eu coloquei um try except e ta sempre caindo no except e nao abre o banco...obrigado
GOSTEI 0
Luiz Vichiatto
29/08/2017
As dlls tem que estar na pasta do programa sim.
Quanto aos erros qual a mensagem do EXCEPTION ?
Para saber qual a mensagem escreva logo abaixo do exception:
Quanto aos erros qual a mensagem do EXCEPTION ?
Para saber qual a mensagem escreva logo abaixo do exception:
on E: Exception do
Application.MessageBox(Pchar(E.Message), PChar('Erro'), mb_Ok);
//para saber qual a mensagem do erro!
GOSTEI 0
Eduardo Jr
29/08/2017
Ola !
Aparece a mensagem invalid argument.
Aparece a mensagem invalid argument.
GOSTEI 0
Luiz Vichiatto
29/08/2017
Deve estar faltando algum parametro na conexão, ou até mesmo o compartilhamento da pasta, já verificou?
GOSTEI 0
Eduardo Tavares
29/08/2017
eu compartilhei a pasta...no meu micro funciona nao roda no micro do usuario..mas vou checar amanha de novo obrigado
GOSTEI 0
Eduardo Jr
29/08/2017
Bom dia...
aqui esta o codigo que estou usando pra acessar o banco firebird na rede :
Agora esta aparecendo esta msg na maquina que desenvolvo...unsupported on-disk structure for file : D:\\moviclin\\moviclin.fdb found 12.0;supported 11.0
aqui esta o codigo que estou usando pra acessar o banco firebird na rede :
var
BASE : string;
begin
Conf := TIniFile.Create(ChangeFileExt(Application.ExeName,'.cfg'));
BASE := Conf.ReadString('DATABASE','SERVER','') + ':' + Conf.ReadString('DATABASE','PATH','');
// myConnection.Params.ValueFromIndex[myConnection.Params.IndexOfName('DATABASE')] := BASE;
myConnection.Params.Values['DATABASE'] := BASE;
Conf.Free;
Try
myConnection.Open;
Except
On E : Exception do
Begin
// MessageDlg('Ocorreu um erro ao abrir o sistema.Cheque se há conexão com a rede e tente novamente.'E.Message,mtWarning,[mbOk],0);
Application.MessageBox(PChar(E.Message),PChar('Erro'));
ShowMessage(Base);
Application.Terminate;
End;
End;
Agora esta aparecendo esta msg na maquina que desenvolvo...unsupported on-disk structure for file : D:\\moviclin\\moviclin.fdb found 12.0;supported 11.0
GOSTEI 0
Luiz Vichiatto
29/08/2017
1) Se você colocar os parâmetros diretamente nas variáveis funciona?
Não, então tem alguma situação com a leitura do arquivo.
2) A mesma biblioteca que está no cliente está no seu computador?
Verifique se não há dll, no cliente, na pasta do system32 diferente.
Não, então tem alguma situação com a leitura do arquivo.
2) A mesma biblioteca que está no cliente está no seu computador?
Verifique se não há dll, no cliente, na pasta do system32 diferente.
GOSTEI 0
Eduardo Jr
29/08/2017
quando eu dou um showmessage tanto na variavel base que é o conteudo do INI ou showmessage no parametro ele mostra certo o que esta no INI..acredito que possa ser a versao do FB do servidor é 1.5 e o que eu criei é 3.0...
To tentando compartilhar minha pasta aqui onde esta o banco mas o programa nao ta conseguindo acessar minha base na minha pasta no meu computador...eu consigo acessar minha pasta pelo explorer mas nao consigo fazer o meu programa acessar a base..pode ser que seja a versao do FB do cliente que e diferente.. ou nao?
To tentando compartilhar minha pasta aqui onde esta o banco mas o programa nao ta conseguindo acessar minha base na minha pasta no meu computador...eu consigo acessar minha pasta pelo explorer mas nao consigo fazer o meu programa acessar a base..pode ser que seja a versao do FB do cliente que e diferente.. ou nao?
GOSTEI 1
Luiz Vichiatto
29/08/2017
Acredito que isto tem a ver sim.
Não tive estes problemas, pois sempre procurei manter o bando de dados atualizado com o DEV, então, não tenho como afirmar.
E agora estou migrando para o MySQL, principalmente o remoto não utilizo o compartilhamento, ou está na nuvem.
Não tive estes problemas, pois sempre procurei manter o bando de dados atualizado com o DEV, então, não tenho como afirmar.
E agora estou migrando para o MySQL, principalmente o remoto não utilizo o compartilhamento, ou está na nuvem.
GOSTEI 0
Luiz Vichiatto
29/08/2017
Neste link tem como você instalar mais de uma versão do firebird, então veja se é viável para você.
Terá que criar um login para ler.
https://www.firebase.com.br/artigo.php?id=1916
Terá que criar um login para ler.
https://www.firebase.com.br/artigo.php?id=1916
GOSTEI 0
Eduardo Tavares
29/08/2017
Este codigo que estou usando é o correto nao e? Eu tenho q mudar alguma coisa no sqlconnection ?
var
BASE : string;
begin
Conf := TIniFile.Create(ChangeFileExt(Application.ExeName,'.cfg'));
BASE := Conf.ReadString('DATABASE','SERVER','') + ':' + Conf.ReadString('DATABASE','PATH','');
// myConnection.Params.ValueFromIndex[myConnection.Params.IndexOfName('DATABASE')] := BASE;
myConnection.Params.Values['DATABASE'] := BASE;
Conf.Free;
GOSTEI 0
Eduardo Jr
29/08/2017
Luiz consegui fazer funcionar so que agora quando eu abro o formulario de contas onde eu abro um clientdatase e um sqldataset da um erro access violation...
este e o codigo que tem no onCreate do form...
se eu remover o codigo de abrir as tabelas o form abre mas nao faco nada pois a tabela ta fechada..
alguma ideia o q pode ser?
obrigado
este e o codigo que tem no onCreate do form...
Try
frmContas := TfrmContas.Create(frmContas);
DM.cdsContas.IndexFieldNames := 'SORT';
DM.sqlContas.Open;
DM.cdsContas.Open;
frmContas.ShowModal;
Finally
DM.sqlContas.Close;
DM.cdsContas.Close;
FreeAndNil(frmContas);
End;
se eu remover o codigo de abrir as tabelas o form abre mas nao faco nada pois a tabela ta fechada..
alguma ideia o q pode ser?
obrigado
GOSTEI 0
Eduardo Tavares
29/08/2017
Muito obrigado Luiz eu consegui..o primeiro problema tive que refazer a base de dados em uma versao anterior a 1.5 e o segundo problema tive que declarar midas e midaslib na uses...
obrigado pelas ajudas...abracos
obrigado pelas ajudas...abracos
GOSTEI 1