Fórum Arquivos pra acessar firebird na rede #585373

29/08/2017

0

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

Responder

Post mais votado

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.

Luiz Vichiatto

Luiz Vichiatto
Responder

Gostei + 1

Mais Posts

29/08/2017

Luiz Vichiatto

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

Gostei + 0

29/08/2017

Eduardo Jr

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
Responder

Gostei + 0

29/08/2017

Luiz Vichiatto

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:

1
2
3
   on E: Exception do
      Application.MessageBox(Pchar(E.Message), PChar('Erro'), mb_Ok);
//para saber qual a mensagem do erro!
Responder

Gostei + 0

29/08/2017

Eduardo Jr

Ola !
Aparece a mensagem invalid argument.
Responder

Gostei + 0

29/08/2017

Luiz Vichiatto

Deve estar faltando algum parametro na conexão, ou até mesmo o compartilhamento da pasta, já verificou?
Responder

Gostei + 0

29/08/2017

Eduardo Tavares

eu compartilhei a pasta...no meu micro funciona nao roda no micro do usuario..mas vou checar amanha de novo obrigado
Responder

Gostei + 0

30/08/2017

Eduardo Jr

Bom dia...
aqui esta o codigo que estou usando pra acessar o banco firebird na rede :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
Responder

Gostei + 0

30/08/2017

Luiz Vichiatto

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

Gostei + 0

30/08/2017

Eduardo Jr

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?
Responder

Gostei + 1

30/08/2017

Luiz Vichiatto

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

Gostei + 0

30/08/2017

Luiz Vichiatto

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
Responder

Gostei + 0

30/08/2017

Eduardo Tavares

Este codigo que estou usando é o correto nao e? Eu tenho q mudar alguma coisa no sqlconnection ?

1
2
3
4
5
6
7
8
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;
Responder

Gostei + 0

31/08/2017

Eduardo Jr

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
Responder

Gostei + 0

31/08/2017

Eduardo Tavares

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
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar