Ir al contenido


Foto

Conectar MySQL con delphi vía internet


  • Por favor identifícate para responder
9 respuestas en este tema

#1 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 21 enero 2014 - 09:21

buen día amigos, pues eso, tengo un problemilla que hasta el momento no eh podido solucionar, y es que no me queda claro bien como poder hacerle, les platico.

Tengo una  base de datos en un servidor que tengo en Toluca, y necesito accesar a ella con un sistema hecho en delphi desde una oficina en santa fe.

ah y algo importante que no sea tardada la interacción de dicho sistema con la base de datos.

de antemano gracias por cualquier aporte que puedan proporcionar, saludos  (y)
  • 0

#2 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 22 enero 2014 - 08:52

¿Internet, tal vez? ¿Un servidor en la nube que les sirva a ambos? Digo, podría ser por ahí el tiro...
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.242 mensajes
  • LocationMéxico

Escrito 22 enero 2014 - 09:27

No se que tipo de aplicación sea, pero un servicio web normalmente soluciona todos los problemas de conectividad y al final es una aplicación por Internet.

Saludos
  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 22 enero 2014 - 09:54

ah y algo importante que no sea tardada la interacción de dicho sistema con la base de datos.


Eso dependerá del ancho de banda. Me explico. aunque infinitum nos garantia poder descargar contenido de intente a velocidades del orden de los megas, sigue limitándonos al momento de enviar contenido, pues el límite si mal no recuerda no supera el mega. Por tanto la velocidad de conexión al serviddor de base de datos sea por el el modo que sea estará limitada por el ancho de banda de internet en el servidor.
  • 0

#5 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 536 mensajes
  • LocationCali, Colombia

Escrito 22 enero 2014 - 11:59

Si te entiendo bien, ya tienes la aplicación creada en Delphi y asumo que para Windows,  además quiere hacer funcionar esa aplicación con un servidor que se encuentra en otra ciudad.

Si es así, lo más fácil es crear una VPN (Virtual Private Network)  que te permite conectar un equipo remoto a una red local LAN, y de allí en adelante es como trabajar localmente.

Sin embargo la velocidad depende de varios factores, efectivamente uno de ellos es la velocidad de acceso y la capacidad de bajada como lo menciona Poliburro y lo otro es la forma como realizas las consultas a las bases de datos, eso quiere decir que si abres varios queries o tablas sin restricciones de tamaño, el sistema intentará arrastrar por medio de la red TODOS los registros de cada tabla y esto puede consumir mucho ancho de banda de internet.

Así que sin importar el tipo de conexión a internet que tengas, es importante revisar el programa para limitar las consultas al máximo.

Otra forma muy práctica es el uso de escritorios remotos, de esta manera estarán conectados a la misma red del servidor.  estas dos modalidades son para salir del paso con un programa que ya se tiene creado, sin embargo para trabajar con Delphi y bases de datos remotas, existe el DataSnap, ya tengo varias aplicaciones tanto de escritorio como en móviles con esta tecnología y está funcionando bastante bien.

PD:  Hay una tercera forma que es abrir el puerto de la base de datos en el servidor y agregarle algún software de encripción y compresión de datos,  la verdad nunca la he usado, pero sé que funciona.

Saludos.
  • 0

#6 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 22 enero 2014 - 12:18

Si efectivamente, bueno estoy trabajando con Zeos, porque este sistema es de hace 6 años y la verdad esta bastante pesado para cambiarlo y el cliente no $$$ quiere, jejeje por eso buscaba alguna alternativa.

Y  lo mejor no me explique bien, efectivamente este sistema se tiene vía VPN, pero la velocidad ya deja mucho que desear sobre todo porque el cliente quiere ver todos sus registros y la verdad ya rebasan los 100k regs.

gracias a todos, pero si necesito ver como poder hacerlo mas rápido...
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.242 mensajes
  • LocationMéxico

Escrito 22 enero 2014 - 12:40

gracias a todos, pero si necesito ver como poder hacerlo mas rápido...


Insisto, webService, la velocidad de procesamiento estará localmente, el medio sólo será para enviar y recibir datos.

Además de que sigues manteniendo tus aplicaciones de escritorio.

Saludos
  • 0

#8 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 22 enero 2014 - 01:22


gracias a todos, pero si necesito ver como poder hacerlo mas rápido...


Insisto, webService, la velocidad de procesamiento estará localmente, el medio sólo será para enviar y recibir datos.

Además de que sigues manteniendo tus aplicaciones de escritorio.

Saludos


Si esa es una buena opción, y de hecho voy a empezar a trabajarla, tendras algun demo con el que pueda empezar a realizar algo? saludos y gracias por contestar amigo  (y)

  • 0

#9 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 536 mensajes
  • LocationCali, Colombia

Escrito 22 enero 2014 - 07:03

La primera opción que consideraría para no modificar demasiado el código es intentar mejorar las consultas para restringir el tráfico en la red.  porque te cuento que aún con webservices si no limitas el tamaño de las consultas, la velocidad se ve muy afectada.


Lo primero es no abrir todos las consultas o tablas al iniciar la aplicación o un formulario, lo conveniente es abrirlas en la medida que se va necesitando.

También es importante limitar la información que se va a mostrar, no se debe mostrar un formulario con muchos registros, esto mata la aplicación,  debes agregar filtros a las consultas o formularios.

Intentar de alguna manera mostrar solo pequeños bloques de registros e ir mostrando más en la medida que se necesiten.

Procura tener un caché local en lo que se pueda almacenar localmente y verificar si hay modificaciones remotas para ser actualizadas.

llevar a webservices, rest o DataSnap los procedimientos que consuman muchos registros para que los procese localmente al lado del servidor y retorne solo un pequeño grupo resumido.

Alguien en el foro podría ayudarme a enumerar los tips para hacer esto?

hay muchas más opciones, pero recuerda que no importa la metodología es importante limitar las consultas.

Saludos.

  • 0

#10 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 824 mensajes
  • LocationMisiones, Argentina

Escrito 19 febrero 2014 - 09:42

En cuanto al tráfico:

Deberías hecharle un ojo a las vistas ya que pueden generarte tráfico extra en ciertos casos. Cuando redundas la información al desnormalizar o concatenar.
Si entendí bien a Ian Marteens (Dark Side of Delphi), cuando traes campos concatenados desde el servidor, además de los campos simples que lo conforman, traes toda esa información redundante. A veces es preferible hacerlo en el lado del cliente.
Además tengo entendido que * es un "símbolo prohibido" en la mayoría de estos casos.
Yo uso un recurso que consiste en crear tablas locales con MyBase (Midas) para uso temporal, en vez de tablas temporales dentro de la base de datos.
  • 0