Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
Firebird en internet

Tengo un problema, yo se q de esto se ha hablado mucho en los foros del club pero no logro dar con el foco del problema, estoy trabajando con delphi 7 y firebird 2.0, mi aplicación corre perfecto atravez de una LAN pero cuando ya la conecto en un servidor de internet, solo para abrir se demora hasta 1 minuto y cuando abre se bloquea o no corre, he mirado detenidamente las consultas y he almacenado la mayoria de consultas en prodedimientos y triggers pero aun asi no me funciona bien en internet he llegado a pensar q firebird y delphi no funcionan para internet y he pensado en pasar todo a php lo cual seria volver a construir todo de nuevo, si alguien me puede ayudar con este asunto o si se debe construir otra aplicación para las consultas y las conexiones q me den una mano con esto pues pienso volver a hacer todo en php. Si alguien conoce algun tutorial sobre este tema o conoce algun ejemplo q me pueda ayudar. Gracias

Última edición por Vlady fecha: 16-04-2008 a las 01:49:31.
Responder Con Cita
  #2  
Antiguo 16-04-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Cita:
solo para abrir se demora hasta 1 minuto y cuando abre se bloquea o no corre
Esto significa que da un erro? Si es asi, cuál?

El puerto por el que trabaja Firebird es el 3050 (si no has cambiado nada)
El puerto debe estar abierto en el servidor
El puerto debe estar abierto en el router
El puerto tiene que estár redirigido del router al servidor.

También puede ser que estés abriéndo todas las tablas al momento de conectarte. En una LAN esto no es un gran problema, pero a travez de internet, donde la velocidad es reducida, esto es grave.
Solo deberías conectar y acto seguido abrir las tablas que vas a usar. Luego, a medida que abres nuevos forms o necesitas más información, abres y cierras mñas tablas.

Cita:
...y cuando abre se bloquea o no corre
Mira la red, para ver si está enviando/recibiendo información. Puede que el programa no responda hasta que no reciba todos los datos.
Para ver si hay tráfico, en un XP puede hacer lo siguiente:
INICIO --> EJECUTAR -- > Escribe Taskmgr.
Se abrirá una ventana, mira la solapa funciones de red.

También puedes poner un evento BeforeOpen en las tablas, que vaya mostrando el nombre de la tabla en la pantalla.
Responder Con Cita
  #3  
Antiguo 16-04-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
No me aparece ningun error solo q se queda congelado o freezado el mouse y tengo q salir con con ctrl+alt+supr, de hecho la conexion esta bien tengo el puerto 3050 abierto y todo esta bie configurado
Responder Con Cita
  #4  
Antiguo 16-04-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Y si lo dejas un rato largo... como para ver qué pasa?
Has probado lo de meter mensajes en el BeforeOpen de las tablas ... quizás hay alguna que tarde más.

Por ejemplo:
Pones un label en el fondo de Form principal con alineación alBottom

Código Delphi [-]
procedure TDataModule.TablaAfterOpen(DataSet: TDataSet);
begin
   FMPrincipal.Label1.caption := DateTimeToStr(Now)+' - Abriendo: '+DataSet.Name;
   Application.ProcessMessages;
end;
Responder Con Cita
  #5  
Antiguo 16-04-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por Vlady Ver Mensaje
No me aparece ningun error solo q se queda congelado o freezado el mouse y tengo q salir con con ctrl+alt+supr, de hecho la conexion esta bien tengo el puerto 3050 abierto y todo esta bie configurado
¿Te conectas vía una VPN?. Si tu aplicacion al momento de iniciar realiza una o varias querys que dan como resultado muchos registros, entonces esto te puede afectar o bien si en tus consultas incluyes blobs para traer imagenes o textos, puede tardarse de manera considerable. Intenta que tu programa realice solamente la conexion al inicio, luego realiza una consulta acotada para ver como se comporta.
Responder Con Cita
  #6  
Antiguo 16-04-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tengo clientes que acceden por internet a firebird y no hay ningún problema en cuanto a velocidad.
Eso sí, hay que asegurarse de qué es lo que viaja por la red y pasar únicamente lo necesario
Responder Con Cita
  #7  
Antiguo 10-05-2008
Troffed Troffed is offline
Miembro
 
Registrado: mar 2004
Posts: 51
Poder: 21
Troffed Va por buen camino
Estoy "investigando" para hacer una aplicación para varias tiendas y una central, con Delphi7 y Firebird2.

Tengo unas dudas:
  • Me imagino que al menos en la central es necesaria/recomendable una IP fija, ¿no?
  • ¿Es necesario abrir los puertos en las tiendas o solo en la central?
  • Tengo pensado utilizar ZeBeDee o similar para encriptar la comunicación, ¿hacéis algo así?
  • ¿Utilizáis ClientDataSet o todo son consultas directas?
  • ¿Que ocurre cuando hay un corte en la conexión? Ya me imagino que dependerá de como estén diseñadas las transacciones, pero quisiera conocer experiencias de primera mano.
  • Me han comentado una alternativa: Instalar un servidor de Windows Terminal/Citrix, bien dimensionado en RAM (>=8GB) y que las tiendas sean terminales. A parte de los costes ¿cómo véis esta solución? Lo bueno es que la programación se simplifica mucho.
Se que son muchas preguntas y evidentemente cada uno es libre de contestar lo que sepa/quiera/pueda.

Muchas gracias.
__________________
"De la ignorancia nos equivocamos,
de los errores aprendemos."
---
www.softinspain.com
Responder Con Cita
  #8  
Antiguo 11-05-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Como siempre, todo es muy relativo, siempre existen varios opciones y lo complicado es acertar la que más nos interesa.

Es conveniente que la central tenga IP fija, aunque existen otros métodos, pero sí, IP fija.
¿Abrir puertos?, depende de lo que decidas hacer finalmente, como mínimo tendrás que direccionar el puerto 3050 del router hacia el servidor.
Es habitual montar una VPN entre las tiendas en la sucursal, esto te da bastante seguridad y puedes ahorrarte la encriptación que has comentado.
¿ClientDataSet o consultas directas?... ummm... depende... habría que saber exactamente qué vas a hacer, qué información vas a necesitar, con qué frecuencia, ¿tiempo real?, etc.
Con las transacciones no tienes problemas de integridad en la base de datos, las operaciones se hacen todas completas o, simplemente, no se hacen. No es problema.
Los terminales son una buena opción, aunque necesitarás un servidor dedicado (o más, depende de la cantidad de tiendas) y más de una línea de internet si son bastantes.
Donde trabajo tenemos implementado en nuestros clientes distintas soluciones: vpn, terminal server, terminal server de linux contra un servidor de aplicaciones linux, conexión directa, citrix, etc. cada caso es necesario estudiarlo profundamente para encontrar la mejor solución, y aunque somos muy partidarios y usuarios del software libre, en ocasiones hemos de instalar software propietario porque hemos pensado que era la mejor solución para un caso determinado. Aunque normalmente instalamos mucho "vnc", libre y gratis para estos casos.
También, dependiendo de la envergadura de la instalación, montamos servidores de bases de datos redundantes, servidores de aplicaciones redundantes, varias líneas de internet, balanceo de carga entre servidores, etc. siempre buscando la mayor seguridad ante problemas hard/soft/conexiones, etc.

Resumiendo: que existen infinitas combinaciones de soluciones y es necesario conocer en profundidad cada caso para poder llegar a una conclusión aceptable.
Responder Con Cita
  #9  
Antiguo 11-05-2008
Troffed Troffed is offline
Miembro
 
Registrado: mar 2004
Posts: 51
Poder: 21
Troffed Va por buen camino
Un poco más de información:
  • Es una instalación pequeña: una central, 3 tiendas.
  • Una ADSL en cada lugar, dedicada en esto hemos insistido. En la central ya tienen una ADSL, pero la utilizan para otras cosas y les hemos insistido que para garantizar la velocidad deberán tener una dedicada, al menos en la central.
  • Aplicación típica de gestión: ventas, TPV, compras, cobros/pagos, clientes, artículos, etc... lleva agenda y gestión de trabajos, pero vamos, nada fuera de lo normal.
  • En principio queremos conexión directa, diseñar un buen sistema de transacciones cortas (selects cortos, inserts/updates pequeños), para no cargar con más infraestructura ni tener que soportar aplicaciones/sistemas que no conocemos.
  • Lo de los ClientDataSet es porque habrán las típicas tablas que no se cambian mucho, pero si se consultan bastante: Formas de pago, impuestos, series, almacenes, etc.
¿Que ancho de banda recomiendas para las ADSL? ¿Con 4MB/512Kb es suficiente?

Muchas gracias.
__________________
"De la ignorancia nos equivocamos,
de los errores aprendemos."
---
www.softinspain.com
Responder Con Cita
  #10  
Antiguo 11-05-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Troffed Ver Mensaje
[..]¿Que ancho de banda recomiendas para las ADSL? ¿Con 4MB/512Kb es suficiente?
Muchas gracias.
Cuanto mayor sea la velocidad mejor. Pero, atención, lo importante aquí es que desde la central tengan una alta velocidad de subida, no tanto de bajada.
En este caso 512 Kbits = 64 Kbytes, y esa no es una velocidad que permita muchas cosas, la verdad, así que será necesario afinar mucho para que funcione de una manera ágil.
Responder Con Cita
  #11  
Antiguo 12-05-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
¿Con 4MB/512Kb es suficiente?
Cita:
Empezado por Casimiro Notevi Ver Mensaje
En este caso 512 Kbits = 64 Kbytes
Creo que 512KB son una buena opcion.
Responder Con Cita
  #12  
Antiguo 12-05-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por juanelo Ver Mensaje
Creo que 512KB son una buena opcion.
512 Kbytes son 4096 Kbits. Dudo mucho que sea esa la velocidad.
Juraría que son 512 Kbits= 64 Kbytes
Responder Con Cita
  #13  
Antiguo 12-05-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
512 Kbytes son 4096 Kbits. Dudo mucho que sea esa la velocidad.
Juraría que son 512 Kbits= 64 Kbytes
Puede ser, aunque hoy dia las conexiones de alta velocidad dan 512Kb y mucho mas de salida, está en pder pagarlas .
Responder Con Cita
  #14  
Antiguo 12-05-2008
Troffed Troffed is offline
Miembro
 
Registrado: mar 2004
Posts: 51
Poder: 21
Troffed Va por buen camino
Bueno, creo que quedó claro que me refería a una conexión ADSL "normal".

Estaba pensando que igual la solución puede ser tener un servidor dedicado en un datacenter con una conexión de 100Mbps, claro que eso suponen 300€ al mes.

En fin, que realizaremos pruebas para ver si con una conexión "estandar" funciona bien.

Muchas gracias a todos.
__________________
"De la ignorancia nos equivocamos,
de los errores aprendemos."
---
www.softinspain.com
Responder Con Cita
  #15  
Antiguo 12-05-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por juanelo Ver Mensaje
Puede ser, aunque hoy dia las conexiones de alta velocidad dan 512Kb y mucho mas de salida, está en pder pagarlas .
Las conexiones adsl que venden al público 'normal' tiene un truco, y es que están las velocidades en kbits... así parece más.

Por ejemplo, yo tengo contratada la adsl de jazztel.com de 'hasta' 20 megas de bajada y 512 kb de subida, sin embargo la realidad es que son:
Descarga: 20 megabits /8 = 2560 kbytes / 8 = 2,5 Mbytes
Subida: 512 kbits /8 = 64 Kbytes

O sea, una descarga de 2,5 Megas "de los de verdad", y una subida 'famélica' de 64 kbytes.

Sin embargo, al estar mi casa a más de 500 metros del nodo más cercano, exactamente a 501 metros, no es broma, me llega un máximo de 6 megabits /8 = 768 Kbytes de bajada.

Aquí los resultados de una simple prueba de velocidad, hecho en http://www.adslayuda.com/test-de-velocidad/

Velocidad de descarga: 643 KB/s
Velocidad de subida: 52.5 KB/s

Esas son las velocidades reales en Kbytes, a pesar de ser en teoría 20 megas
Responder Con Cita
  #16  
Antiguo 12-05-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Las conexiones adsl que venden al público 'normal' tiene un truco, y es que están las velocidades en kbits... así parece más.

Por ejemplo, yo tengo contratada la adsl de jazztel.com de 'hasta' 20 megas de bajada y 512 kb de subida, sin embargo la realidad es que son:
Descarga: 20 megabits /8 = 2560 kbytes / 8 = 2,5 Mbytes
Subida: 512 kbits /8 = 64 Kbytes

O sea, una descarga de 2,5 Megas "de los de verdad", y una subida 'famélica' de 64 kbytes.

Sin embargo, al estar mi casa a más de 500 metros del nodo más cercano, exactamente a 501 metros, no es broma, me llega un máximo de 6 megabits /8 = 768 Kbytes de bajada.

Aquí los resultados de una simple prueba de velocidad, hecho en http://www.adslayuda.com/test-de-velocidad/

Velocidad de descarga: 643 KB/s
Velocidad de subida: 52.5 KB/s

Esas son las velocidades reales en Kbytes, a pesar de ser en teoría 20 megas
Estas en completamente en lo cierto, por ejemplo yo tengo 4 megabits de bajada, y solo tengo 1 Megabit de subida o lo que es lo 128 KBytes de salida (y esto porque pago el equivalente de 100 dolares adicionales).
Pero creeme que esta limitante es meramente comercial, y para que las compañias, generalmente las telefonicas, puedan seguir con su negocio.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Internet y firebird mjjj Firebird e Interbase 3 09-10-2007 19:22:09
Firebird Internet keys Conexión con bases de datos 11 11-09-2006 21:25:38
Firebird e internet urgente AdrianD Firebird e Interbase 0 06-12-2005 14:53:39
Firebird en internet Spynosa Firebird e Interbase 2 22-05-2005 08:12:25
Conectar firebird via internet chemoide Firebird e Interbase 1 12-05-2003 17:47:24


La franja horaria es GMT +2. Ahora son las 16:19:20.


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
Copyright 1996-2007 Club Delphi