Autor Tema: ¿Que Recomiendan?  (Leído 4673 veces)

0 Usuarios y 8 Visitantes están viendo este tema.

Desconectado NoeL

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 3257
    • SvCommunity
¿Que Recomiendan?
« : mayo 22, 2006, 03:59:35 pm »
Bueno, estoy trabajando en un proyecto en el cual estoy utilizando MySQL + .NET , la pregunta es ¿que es mejor?, mantener abierta una conexion a la DB mediante algun subprograma que permita mantenerla asi durante la ejecucion del programa o abrirla solo cuando esa conexion solo cuando se necesite, lo que quiero es evitar perdida de datos o algun problema que se pueda dar por la implementacion de alguno de esos metodos...haber quien da sugerencias.... :phew:

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: ¿Que Recomiendan?
« Respuesta #1 : mayo 22, 2006, 04:12:03 pm »
Ok mira, si tu aplicacion va a estar intercambiando constantemente datos con el servidor SQL, lo más recomendable es que tengas una conexion abierta todo el tiempo. Así te evitas el retardo de inicializar la conexion.

Si en cambio, tu programa trabaja con datos "off line", y solo te conectas a la DB para obtener una info cada cierto tiempo, entonces lo mejor es que abras una conexion para cada consulta.


Desconectado NoeL

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 3257
    • SvCommunity
Re: ¿Que Recomiendan?
« Respuesta #2 : mayo 22, 2006, 04:18:16 pm »
Ok mira, si tu aplicacion va a estar intercambiando constantemente datos con el servidor SQL, lo más recomendable es que tengas una conexion abierta todo el tiempo. Así te evitas el retardo de inicializar la conexion.

Si en cambio, tu programa trabaja con datos "off line", y solo te conectas a la DB para obtener una info cada cierto tiempo, entonces lo mejor es que abras una conexion para cada consulta.

La Cosa está asi...la aplicacion se utilizará basicamente para dos cosas, Ingresaran datos de Clientes (esto nos será siempre), y mas que todo se utilizará para hacer consultas a la DB de los clientes...el problema es que al mantener la conexion (Pienso yo simple conjetura mia) es que si mantengo abierta esa conexión estaré desperdiciando recursos del sistema....otra cosa que quiero saber es si en C++. net al cerrar un formulario que inicio la conexión se pierde esa conexión para todas las instancias de dicha aplicacion...

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: ¿Que Recomiendan?
« Respuesta #3 : mayo 22, 2006, 04:40:06 pm »
La Cosa está asi...la aplicacion se utilizará basicamente para dos cosas, Ingresaran datos de Clientes (esto nos será siempre), y mas que todo se utilizará para hacer consultas a la DB de los clientes...el problema es que al mantener la conexion (Pienso yo simple conjetura mia) es que si mantengo abierta esa conexión estaré desperdiciando recursos del sistema....otra cosa que quiero saber es si en C++. net al cerrar un formulario que inicio la conexión se pierde esa conexión para todas las instancias de dicha aplicacion...

Supongo que si se estara desconectando cuando destruyas el objeto que genera la conexión.

Lo que podrias hacer, es que inicialices la conexion al momento de inicializar el programa, y no cada vez que se abra un formulario.

Lo mas optimo es tener la conexion abierta, si vas a estar actualizando datos, porque estar abriendo la conexion por cada actualizacion solo te podria generar retardos que probablemente no quieras.

Un ejemplo de trabajo offline, en que no necesitas tener abierta la conexion, es por ejemplo con la autenticación. Para autenticar un usuario no es necesario que tengas abierta la base de datos todo el tiempo.


Desconectado NoeL

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 3257
    • SvCommunity
Re: ¿Que Recomiendan?
« Respuesta #4 : mayo 22, 2006, 04:48:41 pm »
La Cosa está asi...la aplicacion se utilizará basicamente para dos cosas, Ingresaran datos de Clientes (esto nos será siempre), y mas que todo se utilizará para hacer consultas a la DB de los clientes...el problema es que al mantener la conexion (Pienso yo simple conjetura mia) es que si mantengo abierta esa conexión estaré desperdiciando recursos del sistema....otra cosa que quiero saber es si en C++. net al cerrar un formulario que inicio la conexión se pierde esa conexión para todas las instancias de dicha aplicacion...

Supongo que si se estara desconectando cuando destruyas el objeto que genera la conexión.

Lo que podrias hacer, es que inicialices la conexion al momento de inicializar el programa, y no cada vez que se abra un formulario.

Lo mas optimo es tener la conexion abierta, si vas a estar actualizando datos, porque estar abriendo la conexion por cada actualizacion solo te podria generar retardos que probablemente no quieras.

Un ejemplo de trabajo offline, en que no necesitas tener abierta la conexion, es por ejemplo con la autenticación. Para autenticar un usuario no es necesario que tengas abierta la base de datos todo el tiempo.
:sur:
Gracias por la sugerencia man....solo me quedó un apequeña duda en cuanto a la autenticacion de usuarios, de que manera podrias autenticar a los usuarios si no es conectandote a la base de datos para validar el Password y el Usuario? :phew:

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: ¿Que Recomiendan?
« Respuesta #5 : mayo 22, 2006, 07:31:35 pm »

 :sur:
Gracias por la sugerencia man....solo me quedó un apequeña duda en cuanto a la autenticacion de usuarios, de que manera podrias autenticar a los usuarios si no es conectandote a la base de datos para validar el Password y el Usuario? :phew:

mmm esque si no vas a almacenar los usuarios en una DB, la única forma que te queda es almacenando los usuarios en algun archivo de texto o algo por el estilo... o en una bd local... pero eso es un riesgo a la seguridad del sistema.


Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: ¿Que Recomiendan?
« Respuesta #6 : mayo 22, 2006, 07:46:15 pm »
mira yo he utilizado mejor creando las cuentas en el mysql y decidiendo en mysql los privilegios que va a tener cada usuario en una tabla , entonces despues venis y creas un formulario chiquito de login e intentas hacer el login a la bd con el usuario y la contraseña que te dio, si el login es exitoso entonces lo envias al resto del programa, de esa manera no estarias manipulando usuarios en tu programita sino mas bien en tu bd.

ahora bien que si queres tener como niveles de usuarios y que el programa se desenvuelva segun el nivel tendrias que buscar que agregarle a lo que yo te menciono para que funcione el programa en niveles.

Desconectado NoeL

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 3257
    • SvCommunity
Re: ¿Que Recomiendan?
« Respuesta #7 : mayo 22, 2006, 09:50:51 pm »
mira yo he utilizado mejor creando las cuentas en el mysql y decidiendo en mysql los privilegios que va a tener cada usuario en una tabla , entonces despues venis y creas un formulario chiquito de login e intentas hacer el login a la bd con el usuario y la contraseña que te dio, si el login es exitoso entonces lo envias al resto del programa, de esa manera no estarias manipulando usuarios en tu programita sino mas bien en tu bd.

ahora bien que si queres tener como niveles de usuarios y que el programa se desenvuelva segun el nivel tendrias que buscar que agregarle a lo que yo te menciono para que funcione el programa en niveles.

Cabal eso es lo que hago por que he instalado el MySQL Administrator y pues de ahi le puedo dar permisos de las tablas a los usuarios, con respecto a lo de guardar por ejemplo un perfil por niveles de usuarios para que le habilite o desahabilite algunas opciones me parece bien definirlo en un tablita aparte para que cuando hagan login verifique en la tabla el nivel de usuario y de esa manera le habilite o le deshabilite algunos menus...muchas gracias por las sugerencias, esto me va a servir un monton ya que es casi los ultimos toquesitos que le estoy dando a esta cosa :thumbsup:

sicario

  • Visitante
Re: ¿Que Recomiendan?
« Respuesta #8 : mayo 23, 2006, 02:43:49 pm »
Exelentes comentarios los que he leido por aca. Creo Noel que tus dudas estan resueltas al leer los comentarios de Rdog y Mx, sin embargo metiendo mi cuchara donde no me llaman me permito tambien agregar un par de cosas mas:

1- Los usuarios podes crearlos de manera integrada entre la base de datos y el Sistema Operativo pero tiene sus ventajas y desventajas.

2- Sugiero que si la aplicacion que estas realizando no estara en ambiente web crees una conexion abierta permanentemente y en lo particular he notado que el mantener conexiones a bases de datos pues no te consume mucho recursos. A no ser que tengas consultas activas como recordset y demas o Datasources abiertos que te carguen la memoria del computador.

Saludos  :thumbsup:

Desconectado NoeL

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 3257
    • SvCommunity
Re: ¿Que Recomiendan?
« Respuesta #9 : mayo 23, 2006, 03:03:09 pm »
Exelentes comentarios los que he leido por aca. Creo Noel que tus dudas estan resueltas al leer los comentarios de Rdog y Mx, sin embargo metiendo mi cuchara donde no me llaman me permito tambien agregar un par de cosas mas:

1- Los usuarios podes crearlos de manera integrada entre la base de datos y el Sistema Operativo pero tiene sus ventajas y desventajas.

2- Sugiero que si la aplicacion que estas realizando no estara en ambiente web crees una conexion abierta permanentemente y en lo particular he notado que el mantener conexiones a bases de datos pues no te consume mucho recursos. A no ser que tengas consultas activas como recordset y demas o Datasources abiertos que te carguen la memoria del computador.

Saludos  :thumbsup:

Hey gracias man, creo que seguire la recomendacion de mantener la conexion abierta, la verdad mi miedo era que me consumiera demasiados recursos pero voy a probar...gracias :thumbsup: