DISTRIBUIÇÃO DE APLICAÇÃO DELPHI CLIENTE(REDE), COM ZEOS Y MYSQL.

27/10/2016

0

Gente, está acontecendo algo comigo que não consigo resolver. O executável não responde nada quando instalado no CLIENTE. Alguém me ajude por favor.
Uso DELPHI BERLIM 10.1, conexão ao MYSQL através do ZEOS por arquivo ".ini". Criei dois arquivos ".ini" um para cada tipo de tecnologia de acesso a dados, a saber: FIREDAC e ZEOS, se um falhar, ele tenta o outro, mas mesmo assim não abre a aplicação no executável Cliente, simplesmente não responde a nada. A aplicação roda normalmente em minha máquina de desenvolvimento, mas no meu notebook de testes não roda. Já fiz todas as configurações no servidor e no cliente do Mysql. Mas creio que meu problema está no meu executável, parece que falta algum arquivo de compilação. HELP, PLEASE.
Wilton Santos

Wilton Santos

Responder

Posts

27/10/2016

Jones Granatyr

Opa! Talvez o software cliente nem esteja conseguindo abrir o arquivo .ini, acho que valeria a pena tentar colocar alguns showmessage no exe cliente antes de tentar abrir o arquivo .ini
Responder

27/10/2016

Wilton Santos

Obrigado por responder amigo, já fiz isso. Na verdade criei mensagens que me diz se o arquivo ini existe, e se existe criei uma exceção para ele verificar erros na execução e retornar outro showmesage se ocorrer erro. Então, a conexão é feita perfeitamente, mas não abre o sistema. (só sei que conecta porque dá um erro quando mudo o IP do servidor no arquivo ini) e depois que corrijo o IP então, com tudo certinho, NÃO ABRE NADA.

Mas acho que meu problema pode estar na compilação do meu instalador. Compilei em win32 e estou instalando em um cliente win64. Ao tentar compilar meu projeto em meu DELPHI na plataforma windows64 me gera um erro com o FASTREPORT ([dcc64 Fatal Error] frxChart.pas(21): F2063 Could not compile used unit 'frxCollections.pas') e não consigo compilar de nenhum modo, já tentei bibliotecas(library), reinstalei o FastReport 5 e nada. O erro continua. Alguma ajuda?
Responder

27/10/2016

Wilton Santos

Prezados amigos, consegui resolver o problema do FASTREPORT, encontrei um support no site oficial da Fast Report (https://www.fast-report.com/en/forum/lofiversion/index.php/t11871.html) dizendo o seguinte:
"It appears that Fast Reports cannot be installed into more than one IDE.", isto é, "Parece que o Fast Reports não pode ser instalado em mais de uma IDE" e eu tinha realmente duas IDE´s com o FASTREPORT rodando: DELPHI BERLIM 10.1 e DELPHI XE8. Desinstalei tudo e instalei somente no DELPHI BERLIM 10.1 e a coisa funcionou show de bola.

Agora estou tentando finalmente gerar o executável da minha aplicação para distribuir em REDE em plataforma WINDOWS64bits com MYSQL e ZEOS, tendo a possibilidade de funcionamento também com FIREDAC através dos arquivos ".ini". Se der tudo certo eu publico os caminhos, mas se der errado estarei aqui pedindo ajuda.
Responder

28/10/2016

Wilton Santos

Bom pessoal, até agora não consegui gerar meu executavel. Na verdade meu Delphi esta instalado em Windows 64bits e a aplicação estava criada em windows 32bits. Alterei a plataforma da aplicação no Delphi para Windows 64bits, inclui as bibliotecas para 64bits, copiei os arquivos dll's do Mysql para SysWow64, mas me gerou este erro: [dcc64 Fatal Error] SisGrace.dpr(52): F2048 Bad unit format: '.\\src\\U_Acesso.dcu' - Expected version: 31.0, Windows Unicode(x64) Found version: 31.0, Windows Unicode(x86). Até agora não consegui encontrar nenhuma resposta favorável na internet, alguém pode me ajudar por favor?
Responder

31/10/2016

Wilton Santos

SALVE, SALVE, PESSOAL!
CONSEGUI RESOLVER, VAI O BIZU.... Uhulll....!!!

Vai ai a solução para os amigos que necessitam:
Bom, meu sistema já está rodando na rede com sucesso (DELPHI BERLIM, MYSQL, ZEOS e WIN64), acompanhe os passos:
1. Primeira coisa que eu fiz foi Recompilar e Reconstruir(Build) todo meu sistema para a plataforma Windows64 bits;
2. Configurei meu banco de Dados para receber o Usuario da rede, criando um novo usuario com host: 192.168.0.xxx(ip da maquina Client) no Mysql do servidor.
3. Criei um arquivo .ini para configurar externamente os dados de conexão, especialmente o LibraryLocation que o Zeos exige para direcionar a dll cliente/servidor (libmariadb.dll). OBS: tem que ser a lib para win64;
4. Copiei o arquivo libmariadb.dll da pasta do ZEOS mesmo (C:\\Program Files (x86)\\ZeosLib\\lib\\mysql\\mariadb_client-1.0.0-win64) para a maquina Client na pasta que se encontra o executavel;
5. Instalei o sistema na maquina Client;
6. Modifiquei os dados do arquivo ini na pasta do Executavel do Client como no modelo:

[Zconexao]

Hostname=192.168.0.102
user_name=UserClient (colocar o nome do usuario criado no MySql Servidor)
Password=12345
Port=3306
Database=caixaschema
Protocol=mysql-5
Charset=utf8
LibraryLocation=C:\\Users\\wilto\\Documents\\MeusPROJETOS\\SisGRACE\\libmariadb.dll

7. Verifiquei a conectividade da rede, referente as maquinas Client/Servidor;
8. Desliguei o Firewall do Servidor (se não desligar o firewall ou criar regra de exceção vai gerar o erro Mysql 10060);
9. Testei tudo e ... Show de bola.

É isso ai pessoal, se eu tiver esquecido algum detalhe é só perguntar que eu posto.
Abração e até mais.

CODIGO NO ONCREATE DO DATA MODULE PARA ARQUIVO INI:

if FileExists(GetCurrentDir+'\\configZcon.ini') then
  begin
   ini := TIniFile.Create(GetCurrentDir+'\\configZcon.ini');
    try
        ZConexao.Connected       := False;
        ZConexao.HostName        := ini.ReadString('ZConexao', 'Hostname', '');
        ZConexao.Port            := ini.ReadInteger('ZConexao', 'Port', 0);
        ZConexao.Protocol        := ini.ReadString('ZConexao', 'Protocol', '');
        ZConexao.LibraryLocation := ini.ReadString('ZConexao', 'LibraryLocation', '');
        ZConexao.User            := ini.ReadString('ZConexao', 'User_name', '');
        ZConexao.Password        := ini.ReadString('ZConexao', 'Password', '');
        ZConexao.Database        := ini.ReadString('ZConexao', 'Database', '');
        ZConexao.ClientCodepage  := ini.ReadString('ZConexao', 'Charset', '');
        ZConexao.Connected       := True;
        ShowMessage('conexao ZEOS estabelecida');
    except
         on E: exception do
         ShowMessage('No se pudo conectar a la Base de Datos por ZEOS, '+ #13+' posible razón: '+ e.message);
    end;
    ini.Free;
  end
      else
        ShowMessage('Ujj! Ningun archivo de conexion ZEOS existe... ');
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar