Fórum ConexaoDelphiAndroid #560144
10/08/2016
0
Gostaria de saber como se faz corretamente isso:
Tenho um aplicativo delphi android com todas as funcionalidades implementadas e funcionando, porem se o cara loga e o aplicativo fica em 2º plano ao tentar enviar as coordenadas da um erro de http:500 mas não se trata de um erro de pagina inexistente e sim da conexão que expirou.
Alguém tem um exemplo de como se faz para verificar
se a conexão existe
insira o dado
senão
conecta e depois insere o dado
Carlos Faria
Curtir tópico
+ 0Post mais votado
18/08/2016
Em "ResourceOptions" vc vai encontrar um parâmetro chamado "AutoReconnect". Habilite ele para True e faça o teste.
Mateus Carvalho
Gostei + 1
Mais Posts
18/08/2016
Carlos Faria
Gostei + 0
18/08/2016
Carlos Faria
http/1.1 403 session has expired.
Gostei + 0
18/08/2016
Carlos Faria
procedure TfrmMain.ListBoxItem1Click(Sender: TObject);
var
qtl, login, user, lat, long: string;
A: string;
B: string;
x: string;
y: string;
clientrest: TServerMethods1Client;
retInsert: integer;
begin
LocationSensor1.Active := true;
A := LocationSensor1.Sensor.Latitude.ToString;
B := LocationSensor1.Sensor.Longitude.ToString;
x := StringReplace(A, ',', '.', [rfReplaceAll, rfIgnoreCase]);
y := StringReplace(B, ',', '.', [rfReplaceAll, rfIgnoreCase]);
qtl := x + ' ' + y;
login := v_nr_matricula;
user := '';
lat := x;
long := y;
//Aqui é server metodos do datasnap
if clientrest = nil then
clientrest := TServerMethods1Client.Create
(ClientModule1.DSRestConnection1);
retInsert := clientrest.insertQTL_integer(qtl, login, user, lat, long);
if retInsert > -1 then
ShowMessage('Localização enviada !' + ''#13'' +
'Aguarde a confirmação via Rede Rádio' + ''#13'' + 'Cordenadas : ' + x
+ ' ' + y)
else
ShowMessage
('Erro ao enviar a localização: Verifique sua conexão com a internet... ');
end;Gostei + 0
18/08/2016
Carlos Faria
function TServerMethods1.insertQtl_Integer(qtl, moto, Userid, lat,long: string): Integer;
begin
Result := -1 ;
with Fqry_QTL do
begin
close ;
sql.Clear ;
SQL.Add('insert into tb_QTL (Qtl, Nm_Login,userid,Ds_latitude,Ds_Longitude) values (:Qtl, :Nm_Login,:userid,:Ds_latitude,:Ds_Longitude)') ;
ParamByName('qtl').AsString := Qtl ;
ParamByName('nm_login').AsString := moto;
ParamByName('userid').AsString := userid;
ParamByName('ds_latitude').AsString := lat;
ParamByName('ds_longitude').AsString := long;
ExecSQL;
Result := 0 ;
end;
end;Gostei + 0
25/08/2016
Mateus Carvalho
Eu crie uma aplicação simples aqui, e está normal. Você poderia informar-me qual os componentes que vc está utilizando?
Gostei + 0
25/08/2016
Carlos Faria
No projeto estou usando um acesso direto ao servermetodos como mostra o código abaixo
Aqui é la no DataSnap no servermetodos
########################Funçao que está no serverMetodos do datasnap ##############################################################
function TServerMethods1.insertQtl_Integer(qtl, moto, Userid, lat,long: string): Integer;
begin
Result := -1 ;
with Fqry_QTL do
begin
close ;
sql.Clear ;
SQL.Add('insert into tb_QTL (Qtl, Nm_Login,userid,Ds_latitude,Ds_Longitude) values (:Qtl, :Nm_Login,:userid,:Ds_latitude,:Ds_Longitude)') ;
ParamByName('qtl').AsString := Qtl ;
ParamByName('nm_login').AsString := moto;
ParamByName('userid').AsString := userid;
ParamByName('ds_latitude').AsString := lat;
ParamByName('ds_longitude').AsString := long;
ExecSQL;
Result := 0 ;
end;
####################################################################################################
///Aqui no projeto mesmo através da classe TServerMethods1Client;
clientrest: TServerMethods1Client;
retInsert: integer;
begin
LocationSensor1.Active := true;
A := LocationSensor1.Sensor.Latitude.ToString;
B := LocationSensor1.Sensor.Longitude.ToString;
x := StringReplace(A, ',', '.', [rfReplaceAll, rfIgnoreCase]);
y := StringReplace(B, ',', '.', [rfReplaceAll, rfIgnoreCase]);
qtl := x + ' ' + y;
login := v_nr_matricula;
user := '';
lat := x;
long := y;
begin
if clientrest = nil then
clientrest := TServerMethods1Client.Create
(ClientModule1.DSRestConnection1);
retInsert := clientrest.insertQTL_integer(qtl, login, user, lat, long);
if retInsert > -1 then
ShowMessage('Localização enviada !' + ''#13'' +
'Aguarde a confirmação via Rede Rádio' + ''#13'' + 'Cordenadas : ' + x
+ ' ' + y)
else
ShowMessage
('Erro ao enviar a localização: Verifique sua conexão com a internet... ');Gostei + 0
26/08/2016
Mateus Carvalho
Link com mais informações sobre os erros mais populares: http://docwiki.embarcadero.com/RADStudio/XE8/en/DataSnap_REST
Att!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)