Clipper On Line • Ver Tópico - Firebird em LAN
Mudar para estilo Clássico
Discussão sobre SQL
Postar uma resposta

Firebird em LAN

15 Out 2018 10:53

Bom dia colegas.

Para os testes iniciais de conexão ao banco Firebird uso o FlameRobin.

A conexão ao Banco de dados Firebird (*.FDB) em modo LOCAL funciona perfeito.

Ao tentar fazer a conexão ao mesmo Banco via LAN no Servidor dá êrro.
O ODBC instalado no Servidor, configurado. No "Teste" do ODBC informa que está OK.

Onde pode estar o êrro ?

Firebird em LAN

15 Out 2018 11:33

Olá!

Não conheço muito bem o Firebird. Pode ser problema na connection string. Não sei se o FB tem configuração de permissão para acesso externo. Pode ser isto também. Pode ser que o próprio servidor não esteja configurado para acesso externo.

Verifique sua conexão. No site The Connection Strings Reference tem exemplos de conexão para todos os bancos de dados.

Poste o trecho de código que está usando.

Firebird em LAN

15 Out 2018 11:56

O Flamerobin é um APP de manutenção especial para Firebird, e desta forma não tenho acesso à string de conexão que ele usa.

Mas, tentarei fazer conexão direta, via programa e te informo do resultado.

Firebird em LAN

15 Out 2018 17:41

Boa tarde.

Surgiu uma outra questão:

O ODBC deve ser instalado e configurado no computador local e apontado para o Banco no Servidor ou ele deve ser configurado no servidor ?

Firebird em LAN

15 Out 2018 18:21

Olá!

ODBC deve ser instalado e configurado em cada máquina que vai acessar o servidor, apontando para este último. No caso de se instalar o banco de dados na máquina local, ODBC vai apontar para ela mesma (localhost ou 127.0.0.1 no IPv4).

Firebird em LAN

15 Out 2018 23:59

Qual erro?

Firebird em LAN

16 Out 2018 09:37

O driver ODBC específico para o banco de dados que deseja usar seria uma ponte entre sua aplicação e o servidor de dados, então as configurações de acesso, ficariam ou no seu código fonte, ou em uma tabela/txt/xml/ini separado, para ser lido na hora da execução do aplicativo :

Código:
static function entrada()

      local m_usuario  := 'sysdba'
      local m_senha    := 'masterkey'
      local m_hostname := ''
      local m_banco    := 'broker'
      
      local oCursor
      local cSQL

/*
** exemplo se quiser acessar o mysql
      * mysql
      Try
             CNN:=CreateObject("ADODB.Connection")
          CNN:Open("DRIVER={MySQL ODBC 3.51 Driver};" + ;
                   "server=localhost" + ;
                   ";database=broker" + ;
                   ";uid=root" + ;
                   ";pwd=121230")
      Catch e
        Error Connection CNN
          ExitProcess(0)
       End
*/

      * firebird
      Try
            CNN:=CreateObject("ADODB.Connection")
         CNN:Open("DRIVER=Firebird/InterBase(r) driver;UID="+alltrim(upper(m_usuario))+";PWD="+alltrim(m_senha)+";DBNAME="+alltrim(upper(m_hostname))+alltrim(upper(m_banco))+".fdb;CHARSET=WIN1252;DIALECT=3;CLIENT=fbclient.dll")
       Catch e
          Error Connection CNN
          ExitProcess(0)
       End

      ****************************
      *                          *
      * criar tabelas do sistema *
      *                          *
      ****************************
      cSQL := "CREATE TABLE COTACAO (ID VARCHAR(15), ID_VEICULO INTEGER, ID_CLIENTE INTEGER, NOME_VEICULO VARCHAR(40), ID_SEGURADORA INTEGER, VEZES INTEGER, FORMA_PAGAMENTO INTEGER, TIPO_FRANQUIA INTEGER, DATA_INICIO DATE, VALOR_FRANQUIA NUMERIC(12,2), VALOR_SEGURO NUMERIC(12,2), COB_CASCO INTEGER, COB_DANOSMAT INTEGER, COB_DANOSCORP INTEGER, COB_MORTE INTEGER, COB_INVALIDEZ INTEGER, OUTROS BLOB, NOME_SEGURADORA VARCHAR(40), PRIMARY KEY(ID))"
      Try
              CNN:Execute(cSQL)
       Catch e
            //ExitProcess(MsgStop("tabela já existe"))
       End

       return(nil)


No exemplo, conecta usando ADO (windows) + driver ODBC (tem que instalar o do Firebird), e a parte do Try-Catch seria do xHabour, que pode ser usado com Harbour associando xhb.ch, ou claro, substituindo por seu equivalente, que agora não me recordo o nome e sintaxe.

Abraços

Firebird em LAN

16 Out 2018 16:23

Olá!

Reveja suas participações no tópico INICIANTE XHARBOUR - Como acessar .Fdb .Gdb

Firebird em LAN

16 Out 2018 19:49

O problema está no ODBC ou na sua configuração.

Depois de preenchidos todos os campos, ao clicar em Testar, o APP responde que "Não foi possível encontrar o arquivo".

Amanhã posto a imagem da configuração do ODBC e do Êrro.

Firebird em LAN

17 Out 2018 09:23

Bom dia.
Segue imagem do Erro do ODBC.
Anexos
Erro ODBC.png

Firebird em LAN

17 Out 2018 09:37

Somente para tirar dúvida, fui no Servidor, instalei o ODBC e funcionou corretamente.
O Teste confirmou a conexão.

Firebird em LAN

17 Out 2018 13:02

Olá!

Tua máquina é de 32 ou 64 bits? O ODBC instalado é compatível?

Veja: HOW TO: Create an ODBC connection to the Firebird database

Reveja estes tópicos: Como executar um arquivo .UDL de 32 bits em um SO 64 bits e Acesso a Oracle

Firebird em LAN

17 Out 2018 19:19

As DUAS máquinas são em 32 bit.

ODBC compatível, 32 bit. Mesmo porque já tentei instalar o de 64 bit (por falta de atenção), e o SO recusou.
Postar uma resposta