Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Conexión a base de datos remota (https://www.clubdelphi.com/foros/showthread.php?t=47371)

martinzcr 25-08-2007 20:50:01

Conexión a base de datos remota
 
Hola a todos. No se si esto corresponde a este foro... si no es así, pido disculpas.

Tengo una aplicación desarrollada en Delphi con Firebird. Para relacionar la base de datos con Delphi utilizo los componentes FIB Plus. El problema que tengo es el siguiente:

El sistema esta instalado en una PC y se trabaja en forma local. Hay otro punto que utiliaz el sistema y que es remoto. Realizo el acceso a través de internet sobre una conexión de CableModem de 256kbps.
He hecho pruebas de conexión a la base de datos remota utilizando IBExpert y la velocidad es "aceptable" (demora unos 15 segundos en conectarse y abrir la base de datos).
El problema es cuando trato de abrir mi aplicación con la base de datos remota. La conexión se realiza relativamente rápido, pero demora muchisimo cargando los datasets. Vi que por ahí hay una opción de Cache ue permite guardar la definición de campos en la pc desde la que se accede. Esto en teoría debería acelerar el acceso una vez que el archivo cahe se cree.... pero sigue siendo muy lento.

Si alguien ha pasado por algo así o tiene una idea de cómo puedo hacer para mejorar la velocidad de acceso, agradecería mucho su comentario.

Saludos y gracias!

poliburro 25-08-2007 21:34:41

tienes que hacer un muy buen diseño cliente servidor, pues sin importar los "Arreglos" que hagas, tu sistema será lentisimo si te estás trayendo grandes cantidades de registros.

Lo ideal es que diseñes pantallas donde no tengas que cargar los datasets con miles de registros o millones de registros, o que dejes al albdedrió del usuario el número de registros a cargar en un dataset.


Priorisa en tu caso el uso de Procedimientos almacenados.

Suerte amigo.

martinzcr 25-08-2007 21:45:40

Ese tema lo estuve revisando y ya lo ajuste ante de postear este tema.
El sistema (ejecutables y DLL) estan en la PC cliente y los datasets vienen con un SQL con una condición que no devuelve ningún registro.

rastafarey 27-08-2007 19:46:00

Resp
 
Para este tipo de trabajo tiene que programar de una manera muy buena ya que el ancho de baanda es muy limitado.

Te recomiendo lo siguiente

1-. Primero deberiasusar un frame work: RemObjects, Asta etc
2-. Usar compresion en la capa de traspoprte
3-. No traer datos inecesarios
4-. Cuando alla que traer muchos datos, traerlos de manera paginada

hay muchas mas cosas que deberias tener en cuenta. Pero a mi parecer deberias comensar por usar un frame work.

Si con un ancho de banda aceptable es aun un problema i¡maginate con 256.


La franja horaria es GMT +2. Ahora son las 23:02:54.

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