Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   Desconección de DataSnap (https://www.clubdelphi.com/foros/showthread.php?t=84715)

mjjj 26-11-2013 23:15:30

Desconección de DataSnap
 
Estimados, una pregunta, como manejan las desconecciones "No autorizadas", es decir, que se pierda la conexión con el servidor DataSnap desde un cliente ya sea por perdida de internet, se corta un cable u otra cosa?

Como puedo volver a conectar sin que el usuario se de cuenta?
Cual es la forma correcta de hacer esto?

Espero me puedan guiar
Gracias.

mjjj 27-11-2013 14:07:02

Una soluciones que tengo implementada es encapsular cada consulta al servidor en un try - except, donde la excepción cieera y vuelve abrir la conección al servidor DataSnap.
Si bien esto funciona, he aquí el motivo de mi consulta, existe una forma más correcta de realizar esto, ya sea con un componente especializado, o alguna función, etc ???

Alguien ha tenido esto problema??

mjjj 28-11-2013 23:02:23

Amigos, aún sigo sin poder resolver este tema.
Estoy intentando con una función que ejecuta un procedimiento en el servidor, que en caso de lograr ejecutar entrega un TRUE, y en caso contratio, intente cerrar y abriendo nuevamente la conección.
Adjunto código.

Código Delphi [-]
function TMainForm.estado_coneccion(Sender: TObject): boolean;
var  General : TDSGeneralClient;
int: integer;
begin
try
if ClientModule1.SQLConnection1.DBXConnection <> nil then
General := TDSGeneralClient.Create(ClientModule1.SQLConnection1.DBXConnection);

if not ClientModule1.SQLConnection1.Connected then
ClientModule1.SQLConnection1.open;
result := General.OK;

if assigned(General)  then
general.free;

except

if assigned(General)  then
general.free;

try
result := false;

ClientModule1.SQLConnection1.close;
ClientModule1.SQLConnection1.open;

result := true;
except

showmessage('Error al conectarse con el servidor');
end;

end;
end;

Esto funciona con algunos errores, una vez corriendo el cliente y apago el servidor, me arroja errores al intentar dejar libre la variable General.
Alguien me puede guiar para poder resolver este misterio !!!


La franja horaria es GMT +2. Ahora son las 19:34:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi