Arquivos pra acessar firebird na rede

Delphi

Banco de Dados

29/08/2017

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
Eduardo Jr

Eduardo Jr

Curtidas 0

Melhor post

Luiz Vichiatto

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.
GOSTEI 1

Mais Respostas

Luiz Vichiatto

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.
GOSTEI 0
Eduardo Jr

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

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:

   on E: Exception do
      Application.MessageBox(Pchar(E.Message), PChar('Erro'), mb_Ok);
//para saber qual a mensagem do erro!
GOSTEI 0
Eduardo Jr

Eduardo Jr

29/08/2017

Ola !
Aparece a mensagem invalid argument.
GOSTEI 0
Luiz Vichiatto

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

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

Eduardo Jr

29/08/2017

Bom dia...
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

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.
GOSTEI 0
Eduardo Jr

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?
GOSTEI 1
Luiz Vichiatto

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.
GOSTEI 0
Luiz Vichiatto

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
GOSTEI 0
Eduardo Tavares

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

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...

  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

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
GOSTEI 1
POSTAR