JonatasFn 0 Denunciar post Postado Agosto 12, 2009 Olha eu aqui de novo, enchendo o fórum. Desculpem se estou sendo chato, mas é q sempre programei em PHP e agora resolvi mudar e estou apanhando. Mas a dúvida é: Como faço para disponibilizar a minha aplicação na rede? por exemplo, eu crei uma aplicação no meu PC, onde está instalado o MySQL, e fiz a conexão usando o ZeosLib. Nas propriedades da conexão, eu coloquei o HostName como Localhost. Agora quero colocar esta aplicação em outra máquina da rede, mas sem ter que alterar no código, ou nesta propriedade. Tem como eu fazer isso? É com ODBC? Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 12, 2009 Mas o certo é justamente mudar o valor do campo do hostname no campo hostname você insere o IP ou o nome do host que está executando o servidor MySQL... Compartilhar este post Link para o post Compartilhar em outros sites
JonatasFn 0 Denunciar post Postado Agosto 12, 2009 Mas o certo é justamente mudar o valor do campo do hostname no campo hostname você insere o IP ou o nome do host que está executando o servidor MySQL... Mas então eu vou ter q complilar uma aplicação para cada máquina da rede? você pode me ajudar, como faço isto? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 12, 2009 Não, o caminho do banco não muda conforme a maquina, indiferente da maquina o banco sempre vai estar no mesmo local. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 12, 2009 você não precisa recompilar toda a sua aplicação. Faça assim: Use a classe TiniFile da unit iniFiles, com ela, você pode criar arquivos ini, muito utilizados para armazenar arquivos de configuração. Procure um evento que seja executado ao inicar o programa, como onCreate de algum form e codifique para que seu sistema leia este arquivo ini e alterar o valor o valor da propriedade hostname... um exemplo: uses iniFiles; procedure Tfrm_MainForm.FormCreate(Sender: TObject); var Config: TIniFile; begin Config := TIniFile.Create('./Config.ini'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','hostname','localhost'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','login','root'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','senha',''); DataModule1.ZeosConnection.Connected := True; {Após os valores dos campos corrigidos, fazemos a conexão. Por Favor verifique o nome da propriedades do ZeosConnection} Config.Free; end; o arquivo ini pode ser desta forma: [Servidor] hostname=192.168.0.1 login=admin senha=admin O método Create da classe TIniFile recebe o caminho para o arquivo ini. O método ReadString retorna o valor para os campos do arquivo ini, o primeiro parametro é a seção, no caso servidor, o segundo parametro é o campo a buscar os valores, o terceiro é um valor padrão em caso de falha de leitura. Compartilhar este post Link para o post Compartilhar em outros sites
JonatasFn 0 Denunciar post Postado Agosto 12, 2009 você não precisa recompilar toda a sua aplicação. Faça assim: Use a classe TiniFile da unit iniFiles, com ela, você pode criar arquivos ini, muito utilizados para armazenar arquivos de configuração. Procure um evento que seja executado ao inicar o programa, como onCreate de algum form e codifique para que seu sistema leia este arquivo ini e alterar o valor o valor da propriedade hostname... um exemplo: uses iniFiles; procedure Tfrm_MainForm.FormCreate(Sender: TObject); var Config: TIniFile; begin Config := TIniFile.Create('./Config.ini'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','hostname','localhost'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','login','root'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','senha',''); DataModule1.ZeosConnection.Connected := True; {Após os valores dos campos corrigidos, fazemos a conexão. Por Favor verifique o nome da propriedades do ZeosConnection} Config.Free; end; o arquivo ini pode ser desta forma: [Servidor] hostname=192.168.0.1 login=admin senha=admin O método Create da classe TIniFile recebe o caminho para o arquivo ini. O método ReadString retorna o valor para os campos do arquivo ini, o primeiro parametro é a seção, no caso servidor, o segundo parametro é o campo a buscar os valores, o terceiro é um valor padrão em caso de falha de leitura. Cara fiz como você me disse, apesar de não ter compreendido muito. Mas não funcionou. Olha meu código: Config := TIniFile.Create('./Config.ini'); DM.zconGeral.HostName := Config.ReadString('Servidor','hostname','localhost'); DM.zconGeral.HostName := Config.ReadString('Servidor','login','root'); DM.zconGeral.HostName := Config.ReadString('Servidor','senha',''); DM.zconGeral.Connected := True; {Após os valores dos campos corrigidos, fazemos a conexão. Por Favor verifique o nome da propriedades do ZeosConnection} Config.Free; O que eu fiz de errado? Esta instrução ReadString está lendo o que está dentro do meu arquivo .ini ? Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 13, 2009 existe o arquivo config.ini na mesma pasta onde está o exe do seu sistema? Compartilhar este post Link para o post Compartilhar em outros sites
JonatasFn 0 Denunciar post Postado Agosto 14, 2009 existe o arquivo config.ini na mesma pasta onde está o exe do seu sistema? Sim, criei o arquivo .ini e coloquei dentro da pasta raíz, onde está o .exe. Estou usando EasyPHP, aqui para ter o MySQL, tem algum problema tbm? Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 14, 2009 de fato não. porém, eu não uso o Zeus, e não tenho acesso ao seu Source, verifique os nomes das propriedades dos componentes Zeos. Agora eu ví um detalhe também: O trecho DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','hostname','localhost'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','login','root'); DataModule1.ZeosLib.HostName := Config.ReadString('Servidor','senha',''); Só está alterando a propriedade HostName, ajuste para alterar o Login e a Password também. Compartilhar este post Link para o post Compartilhar em outros sites
JonatasFn 0 Denunciar post Postado Agosto 19, 2009 Só uma pergunta off-topic... O meu BD vai ficar em um PC que não vai rodar a aplicação. Eu instalei o EasyPHP na máquina q roda a aplicação, e na propriedade Hostname do ZConnection eu coloquei Localhost. Mas eu instalei na outra máquina e copiei o BD pra lá, mas se eu colocar \\Servidor na propriedade Hostname ele dá erro: "Unknown MySQL Server host \\Servidor" já coloquei sem barras, com o caminho completo, etc... Como devo fazer isto? Tenho q compartilhar a pasta do MySQL? Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 19, 2009 Não precisa compartilhar a pasta, verifique se o usuário root (do mysql) está com permissão para acesso remoto (conecte ao banco de dados mysql - pelo easyphp mesmo - e faça um select na tabela users. o usuário root precisa estar com um símbolo de porcentagem no campo hostname. Procure no google). Esta informação de hostname deve ser a mesma que é usada pelo 'windows como nome do computador na rede', se estiver com dúvidas, use o IP do computador (prompt de comandos > ipconfig) e não use as barras. Se mesmo assim você não conseguir conectar, verifique o firewall do windows, o firewall precisa permitir conexões pela porta 3306. Compartilhar este post Link para o post Compartilhar em outros sites
JonatasFn 0 Denunciar post Postado Agosto 25, 2009 Não precisa compartilhar a pasta, verifique se o usuário root (do mysql) está com permissão para acesso remoto (conecte ao banco de dados mysql - pelo easyphp mesmo - e faça um select na tabela users. o usuário root precisa estar com um símbolo de porcentagem no campo hostname. Procure no google). Esta informação de hostname deve ser a mesma que é usada pelo 'windows como nome do computador na rede', se estiver com dúvidas, use o IP do computador (prompt de comandos > ipconfig) e não use as barras. Se mesmo assim você não conseguir conectar, verifique o firewall do windows, o firewall precisa permitir conexões pela porta 3306. Não dá certo ... O usuário do MySQL está assim: root@% e o firewall está desativado. Quando eu coloco o hostname "SERVIDOR" ele não encontra nada. Já tentei com/sem barras e nada. Preciso que esta aplicação rode na rede, pois senão não terá sentido algum. Vcs acham melhor eu instalar o MySQL mesmo, sem usar o EasyPHP, ou dá na mesma. Eu instalei em uma outra máquina, mas não encontrei a pasta dentro da instalação onde eu coloco o meu BD. Vi por aí q é dentro da pasta Data, mas vasculhei tudo e não encontrei esta pasta. O que faço ??? Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Agosto 26, 2009 Olha, voce precisa verificar se esta rede está funcionando direito. Use o comando ping para fazer este teste ping <IP_DO_PC>se o ping estiver funcionando, tente instalar apenas o MySQL mesmo e faça os testes.... Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo M. Neitzer 0 Denunciar post Postado Agosto 28, 2009 amigos será que poderiam me dar uma auda??? estou desenvolvendo com delphi 2007, dbexpress e mysql, teria algum exemplo para conexão em rede com arquivo ini??? Grato. Compartilhar este post Link para o post Compartilhar em outros sites