Conectar MySQL con delphi vía internet
#1
Escrito 21 enero 2014 - 09:21
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
#2
Escrito 22 enero 2014 - 08:52
#3
Escrito 22 enero 2014 - 09:27
Saludos
#4
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.
#5
Escrito 22 enero 2014 - 11:59
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.
#6
Escrito 22 enero 2014 - 12:18
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...
#7
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
#8
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
#9
Escrito 22 enero 2014 - 07:03
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.
#10
Escrito 19 febrero 2014 - 09:42
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.