| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
userdata Novato

Registrado: Sábado, 14 de Março de 2015 Mensagens: 7
|
Enviada: Sáb Mar 14, 2015 11:28 pm Assunto: Delphi XE7 - Firemonkey - Android - DataSnap |
|
|
Olá pessoal, sou novo na questão mobile...
Desenvolvi uma aplicação PHP/MYSql que está hospedado em um determinado servidor externo.
Fiz uma aplicação no firemonkey com banco SQLite;
Eu estou usando o Datasnap como servidor que conecta com meu Mysql;
Do lado cliente se comunicando com meu servidor eu tenho um Datasnap cliente usando um ClientModule com um SQLConnection para conectar no meu servidor Datasnap.
Para minha conexão com o banco Sqlite que vai embarcado no dispositivo e um uso um DataModule com um TFDConnection
Eu faço uns lançamento no mobile no banco SQLite....até ai blz....
tenho um botão que sincroniza passando todos os meus dados do sqlite par meu servidor externo para o banco Mysql.
AQUI VEM O PROBLEMA
no SQLConnection eu uso o Dirve: DataSnap
meu Hostname eu uso o ip da minha máquina pego via ipconfig ou utilizo o iplo caldo host ou seja 127.0.0.1
funciona que é uma beleza.....
quando sai da minha rede e vou com o dispositivo para outro predio onde a internet ou rede é outra ele nem abre o aplicativo...o aplicativo não responde...
então o probelma está no meu hostname...vi algumas postagens dizendo que tem que ficar trocando o ip do hostname...isso é um absurdo....quer dizer que meu cliente que está como o tablet ou o celular não pode transmitir os dados de um supermercado por exemplo?
como faço para fazer com que o aplicativo tenha um servidor interno para colocar no hostname ou coisa parecida?
Obrigado meus amigos....
José Tatai |
|
| Voltar ao Topo |
|
 |
userdata Novato

Registrado: Sábado, 14 de Março de 2015 Mensagens: 7
|
Enviada: Dom Mar 15, 2015 4:13 pm Assunto: |
|
|
É velho não é fácil não.....
todos os exemplos que vi ...só tem exemplo conectando com localhost... |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Seg Mar 16, 2015 9:44 am Assunto: |
|
|
Das questões:
1- Onde estar o servidor Datasnap externo?
2- O servidor Datasnap externo tem ip fixo ou dinamico?
3 - servidor Datasnap externo tem porta do router aberta? _________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
akenatum Novato

Registrado: Sexta-Feira, 22 de Mai de 2015 Mensagens: 5
|
Enviada: Ter Jun 16, 2015 4:49 pm Assunto: |
|
|
Vc tem que redirecionar, no modem, a porta 211 (Padrão servidor datasnap) para o IP (Interno) que está instalado o servidor.
Liberar a porta no Firewall do windows ou outro se tiver instalado.
Para acessar de fora, vc deverá colocar na máquina cliente o ip externo (www.meuip.com.br).
Agora caso não tenha um ip fixo vc pode usar o aplicativo no-ip (www.noip.com) e conectar usando somente o nome que vc criar lá, toda vez que o ip mudar ele atualiza automaticamente. |
|
| Voltar ao Topo |
|
 |
marcelo_tux Aprendiz

Registrado: Terça-Feira, 2 de Abril de 2013 Mensagens: 230 Localização: São José do Rio Preto - SP
|
Enviada: Qua Jun 17, 2015 9:48 am Assunto: |
|
|
Eu tenho uma aplicação bem parecida com o que falou e fiz da seguinte maneira :
A abrir o aplicativo eu mostro um combobox com as opções EXTERNO e INTERNO , ou seja, se estiver na rede local eu escolho INTERNO e pego o hostname local, se escolher o EXTERNO eu pego o hostname externo, o código fica mais ou menos assim :
if ComboBox1.Selected.Text = 'INTERNO' then
begin
ClientModule1.SQLConnection1.Params.Clear;
ClientModule1.SQLConnection1.Params.Add('Port=porta');
ClientModule1.SQLConnection1.Params.Add('HostName=hostname local');
ClientModule1.SQLConnection1.Params.Add('CommunicationProtocol=tcp/ip');
ClientModule1.SQLConnection1.Params.Add('DatasnapContext=datasnap/');
ClientModule1.SQLConnection1.Open;
end;
if ComboBox1.Selected.Text = 'EXTERNO' then
begin
ClientModule1.SQLConnection1.Params.Clear;
ClientModule1.SQLConnection1.Params.Add('Port=porta');
ClientModule1.SQLConnection1.Params.Add('HostName=hostname externo');
ClientModule1.SQLConnection1.Params.Add('CommunicationProtocol=tcp/ip');
ClientModule1.SQLConnection1.Params.Add('DatasnapContext=datasnap/');
ClientModule1.SQLConnection1.Open;
end;
Obs : Lembrando que para ter um hostname externo vc tem que ter um acesso externo como nosso amigo akenatum mencionou acima. _________________ Porgramador Delphi - Mobile |
|
| Voltar ao Topo |
|
 |
userdata Novato

Registrado: Sábado, 14 de Março de 2015 Mensagens: 7
|
Enviada: Qui Jun 18, 2015 6:18 pm Assunto: |
|
|
| marcelo_tux escreveu: | Eu tenho uma aplicação bem parecida com o que falou e fiz da seguinte maneira :
A abrir o aplicativo eu mostro um combobox com as opções EXTERNO e INTERNO , ou seja, se estiver na rede local eu escolho INTERNO e pego o hostname local, se escolher o EXTERNO eu pego o hostname externo, o código fica mais ou menos assim :
if ComboBox1.Selected.Text = 'INTERNO' then
begin
ClientModule1.SQLConnection1.Params.Clear;
ClientModule1.SQLConnection1.Params.Add('Port=porta');
ClientModule1.SQLConnection1.Params.Add('HostName=hostname local');
ClientModule1.SQLConnection1.Params.Add('CommunicationProtocol=tcp/ip');
ClientModule1.SQLConnection1.Params.Add('DatasnapContext=datasnap/');
ClientModule1.SQLConnection1.Open;
end;
if ComboBox1.Selected.Text = 'EXTERNO' then
begin
ClientModule1.SQLConnection1.Params.Clear;
ClientModule1.SQLConnection1.Params.Add('Port=porta');
ClientModule1.SQLConnection1.Params.Add('HostName=hostname externo');
ClientModule1.SQLConnection1.Params.Add('CommunicationProtocol=tcp/ip');
ClientModule1.SQLConnection1.Params.Add('DatasnapContext=datasnap/');
ClientModule1.SQLConnection1.Open;
end;
Obs : Lembrando que para ter um hostname externo vc tem que ter um acesso externo como nosso amigo akenatum mencionou acima. |
Obrigado Gente...muito obrigado |
|
| Voltar ao Topo |
|
 |
|