Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Barbosa

Conexão com banco GDB

Recommended Posts

Olá pessoal, bem tô com uma rotina em php para fazer conexão com o banco de dados GDB, tenho clientes em lugares diferentes (mais de 10), cada um dele utiliza o mesmo sistema em delphi, com o banco de dados local, como a rotina que tenho, cada cliente acessa o sistema php e exporta as informações para p o banco mysql, inicialmente estou fazendo testes só para listagem, mas só está funcionando se a base GDB estiver instalada no servidor onde o sistema PHP está instalada.

Não sei se fui bem claro... Mas seria possível fazer essa integração.

 

Segue o código

  
<?php
$host = "127.0.0.1:c:/l/TELEMEDICINA_SSA.GDB";
$user = "SYSDBA";
$pass = "masterkey";
$conexao = ibase_connect($host,$user,$pass) or die ('Erro na conexão com o banco '.mysql_error());

$selecao = 'SELECT * FROM exames JOIN pacientes	ON (exames.IDPACIENTE = pacientes.ID) 
           ORDER BY numeroexame';
$selecionar =  @ibase_query($conexao, $selecao) or die('Erro ao executar o SQL '.mysql_error());
while($resultado = ibase_fetch_assoc($selecionar)){
  echo $resultado['NUMEROEXAME'].' - '.$resultado['IDPACIENTE'].' - '.$resultado['NOME'].'<br />';
} 
?>

 

Eu imaginava que usando o ip 127.0.0.1 resolveria isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o q seria este gdb? gdb eu conheco pra instalar o compilador gcc pra windows e netbeans...

Firebird.

 

@Marcos Barbosa, você precisa criar um banco central, onde TODOS que acessarem essa página, irão utilizar deste banco .. caso contrário, o banco também tem que acompanhar o PC do cliente ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

GDB é banco firebird, muito utilizados em sistemas feito em Delphi.

 

Andrey Knupp eu estou pensando em pegar o IP da máquina que está acessando o sistema PHP e mandar fazer a varredura no banco, pode ser ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey Knupp eu estou pensando em pegar o IP da máquina que está acessando o sistema PHP e mandar fazer a varredura no banco, pode ser ?

Não sei, vamos voltar a estaca zero, explique a situação atual, o problema, e o que você quer fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei, vamos voltar a estaca zero, explique a situação atual, o problema, e o que você quer fazer.

 

Vamos lá.

O sistema que utiliza o banco GDB é feito em delphi e foi comprado pela empresa que trabalho, nós utilizamos esse sistema em vários de nossos clientes, ou seja:

1 cliente está na cidade A

outro na cidade B

outro na cidade C

e assim por diante.

 

Todos os dias preciso pegar informações do banco de dados de cada um desses clientes, bem, hoje fazemos assim, eles pegam essas informações e digitam em nosso sistema na WEB, acontece que isso gera um retrabalho para o cliente, então eu pensei em fazer um exportação do banco GDB para o nosso banco de dados WEB.

 

Bem assim o cliente A poderia acessar o site e mandar exporta as informações

Os clientes B, C ... poderiam fazer a mesma coisa.

 

Só que para isso eu teria que conseguir acessar cada máquina de cliente, ler as informações de seus respectivos banco de dados e gravar no banco que está na WEB.

 

É isso aí. Será que dá para fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm .. entendi, bom, você tem duas opções, uma, criar um webService para que esse cliente possa transmitir toda base para esse servidor, outra .. criar um esquema que esse cliente exporte a SQL e importe no seu sistema web.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm .. entendi, bom, você tem duas opções, uma, criar um webService para que esse cliente possa transmitir toda base para esse servidor, outra .. criar um esquema que esse cliente exporte a SQL e importe no seu sistema web.

 

Como eu poderia fazer essa exportação ?

A forma que falei realmente ñ funcionaria né ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sugeriria que os clientes passassem a utilizar um DB comum, centralizado.

 

Se a primeira alternativa não for possível, se não me engano Firebird armazena o DB em um arquivo físico, não é?

Para facilitar, o cliente pode enviar o arquivo do DB (que logo logo ficará enorme) e você faz as atualizações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sugeriria que os clientes passassem a utilizar um DB comum, centralizado.

 

Se a primeira alternativa não for possível, se não me engano Firebird armazena o DB em um arquivo físico, não é?

Para facilitar, o cliente pode enviar o arquivo do DB (que logo logo ficará enorme) e você faz as atualizações.

 

Não tem como usar um base comum para eles, esse envio tb ñ dá pq são arquivos grandes mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sugeriria que os clientes passassem a utilizar um DB comum, centralizado.

 

Se a primeira alternativa não for possível, se não me engano Firebird armazena o DB em um arquivo físico, não é?

Para facilitar, o cliente pode enviar o arquivo do DB (que logo logo ficará enorme) e você faz as atualizações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você achar viável implantar um interpretador PHP em cada cliente que tem o sistema instalado, pode fazer até mesmo um script CLI que empurre as informações de forma automatizada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você achar viável implantar um interpretador PHP em cada cliente que tem o sistema instalado, pode fazer até mesmo um script CLI que empurre as informações de forma automatizada.

 

você poderia me orientar como fazer isso ?

Poder ser sim um opção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao tem como criar um ftp pra deposito desses gdb's, ou mesmo criar um tunelamento pra q você mesmo busque isto...? se o seu software delphi tiver programado pra receber atualizacoes, você pode criar um script php q receba os dados, e o delphi empurrar estes dados para o seu servidor...eu sempre faço com meus softwares AIR pra ficarem de busca por atualizacoes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao tem como criar um ftp pra deposito desses gdb's, ou mesmo criar um tunelamento pra q você mesmo busque isto...? se o seu software delphi tiver programado pra receber atualizacoes, você pode criar um script php q receba os dados, e o delphi empurrar estes dados para o seu servidor...eu sempre faço com meus softwares AIR pra ficarem de busca por atualizacoes...

 

Eu posso tentar qualquer coisa, rsrs, mas o FTP do banco inteiro fica inviavel, pois irá demorar bastante, o banco é muito grande, e na realidade no sistema PHP eu só iria ler 3 tabelas.

Agora quando você´s diz para criar um scrip para receber os dados, ñ cairia no situação que estou agora, ou seja de conexão com o banco que está na máquina do cliente ?

Pô se entendi sua explicação errada, desculpa aí, é que já tentei tanta coisa e nada está dando certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você poderia me orientar como fazer isso ?

Poder ser sim um opção.

 

instalar o PHP em qualquer SO pra você não seria um problema, certo? Certifique-se de especificar o diretório do PHP na variável de ambiente PATH para que seja possível executar o PHP de qualquer lugar.

 

Aprenda a manipular scripts CLI e passe o caminho do banco como argumento, para que ele fique acessível via $argv[1]

 

Certifique-se de ter o cURL instalado nos sistemas baseados em Unix e ter habilitado a extensão cURL no Windows.

 

Depois disso, basta programar o seu script PHP como um script comum, fazendo as requisições online via cURL postando os valores desejados do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, entendeu errado, imaginemos q seus softwaresa em delphi tem uma rotina pra procurar uma atualizacao...ae você cria uma rotina na proxima atualizacao, pra q ele pegue os dados locais e enviem para o seu servidor, no seu servidor vai estar um script esperando os dados pra guardar num outro banco....

 

imagina a situacao...

 

você criou a rotina pra seu delphi ler os dados e mandar pro seu servidor, esta atualizacao, você poe no servidor, e seus clientes atualizam o software, dae assim q eles atualizarem, eles mandam os dados pro servidor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, entendeu errado, imaginemos q seus softwaresa em delphi tem uma rotina pra procurar uma atualizacao...ae você cria uma rotina na proxima atualizacao, pra q ele pegue os dados locais e enviem para o seu servidor, no seu servidor vai estar um script esperando os dados pra guardar num outro banco....

 

imagina a situacao...

 

você criou a rotina pra seu delphi ler os dados e mandar pro seu servidor, esta atualizacao, você poe no servidor, e seus clientes atualizam o software, dae assim q eles atualizarem, eles mandam os dados pro servidor...

 

Bem, o sistema DELPHI é de outra empresa, mas eu posso fazer um sistema em DELPHI, só para ficar analisando as atualizações das tabelas, e cada vez que ela for atualizada eu mando essas atualizações para o servidor WEB, bem isso resolveria meu problema e muito.

É possível você me indicar um tutorial ensinado como fazer essa integração ?

 

Vlw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

desta vez entendeu em parte, as atualizações q eu me referi nao são das ta elas são no software,. porém eu nao entendo de delphi, entendo só de php e flex/air....mas acho a ajudaria muito, pois ele serviria pra pegar o banco pra você e daria o imputa no seu servidor automaticamente...pouparia em parte o seu trabalho. do cliente....sem importunar ambas as partes....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.