Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Mensaje De Conexión

Mensaje De Conexión
Artículo
Responder citando    Descargar mensaje  
Mensaje Mensaje De Conexión 
 
Buenos dias, estoy haciendo un programa en el que necesito conexión a mysql pero me gustaría que los usuarios sepan si el programa se ha conectado a mysql satisfactoriamente, como puedo generar un mensaje asi? usando un IF ?


Gracias de antemano



 
techm3 - Ver perfil del usuario Enviar mensaje privado  
techm3 [ Lunes, 15 Marzo 2010, 14:39 ]
 


Mensaje De Conexión
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Mensaje De Conexión 
 
Hola.

Aqui te dejo un ejemplo de conexion que viene con gambas, si te fijas la instruccion TRY - CATCH captura el error si no te puedes conectar a la base de datos.
PRIVATE $hConn AS Connection

PUBLIC SUB _new()
  $hConn = NEW Connection
END

PUBLIC SUB Form_Open()

END

PUBLIC SUB Button1_Click()
DIM database AS String
 
TRY $hConn.Close
 
  database = "test"

  WITH $hConn
    .Type = "mysql"
    .Host = "127.0.0.1"
    .Login = "root"
    .port = "3306"
    .Password = ""    
  END WITH

  $hConn.Open
    
  IF NOT $hConn.Databases.Exist(database) THEN
      $hConn.Databases.Add(database)
  ELSE
  ENDIF
  
  $hConn.Close
  $hConn.Name = database
  $hConn.Open
CATCH

  Message.Error(DConv(Error.Text))
END




 
última edición por abarzuaf el Lunes, 15 Marzo 2010, 15:40; editado 1 vez 
abarzuaf - Ver perfil del usuario Enviar mensaje privado  
abarzuaf [ Lunes, 15 Marzo 2010, 15:37 ]
Responder citando    Descargar mensaje  
Mensaje Re: Mensaje De Conexión 
 
Gracias abarzuaf, hasta ahora ha funcionado el mensaje de error, pero lo que quiero es que el usuario sepa que se ha conectado satisfactoriamente a la base de datos.



 
última edición por techm3 el Miercoles, 17 Marzo 2010, 17:37; editado 1 vez 
techm3 - Ver perfil del usuario Enviar mensaje privado  
techm3 [ Miercoles, 17 Marzo 2010, 17:28 ]
Responder citando    Descargar mensaje  
Mensaje Re: Mensaje De Conexión 
 
Bueno amigo aquí te traigo uno para ver si te puede servir es diferente que el de abarzuaf pero creo que te puede servir

DIM cn AS Connection
cn = NEW Connection
cn.Type = "mysql"
cn.Host = "host" 'Cambiar por el host de tu servidor de MYSQl
cn.User = "user" 'Usuario de Mysql
cn.Password = "pass" 'Contraseña de Mysql
cn.Name = "Nombre_DB" 'Nombre de Base de Datos
TRY cn.Open
IF ERROR THEN
Message.Error("Error en la coneccion")
ELSE
Message.Info("conectado satisfactoriamente")
ENDIF
 


Espero que te sirva..!! Suerte  



 
última edición por chen_08 el Miercoles, 17 Marzo 2010, 17:57; editado 1 vez 
chen_08 - Ver perfil del usuario Enviar mensaje privado  
chen_08 [ Miercoles, 17 Marzo 2010, 17:56 ]
Responder citando    Descargar mensaje  
Mensaje Re: Mensaje De Conexión 
 
Si deceas mostrar el tipo de error pon esto

Message.Error("Error en la coneccion " & Error.Text)
 




 
última edición por chen_08 el Miercoles, 17 Marzo 2010, 18:03; editado 1 vez 
chen_08 - Ver perfil del usuario Enviar mensaje privado  
chen_08 [ Miercoles, 17 Marzo 2010, 18:02 ]
Responder citando    Descargar mensaje  
Mensaje Re: Mensaje De Conexión 
 
En general, nunca es buena idea bombardear al usuario con mensajes popup en ventanas modales a menos que sea estrictamente necesario. Esto crea confusión y aburrimiento, ya que requiere de la intervención del usuario para cerrar dicha ventana.

En otras palabras, es aceptable usar messagebox cuando se produce un error más o menos crítico (si es que has previsto que pueda suceder), pero nunca para avisar de un estado del programa que se considera normal o esperado.

En el caso que propone techm3, mi sugerencia es que utilices los mismos mecanismos que se han descrito aquí, pero para mostrar un texto no intrusivo por ejemplo en una barra de estado de la parte inferior del form, o bien en un lugar donde se vea pero no estorbe. Incluso podrías crearte un pequeño control basado en un picturebox para hacer una especie de indicador led que cambie de color según el estado de conexión.

A todo esto, y a menos que uses bases de datos remotas que eventualmente puedan cerrarse, entiendo que una vez que abres una conexión mysql, ésta permanece abierta hasta que tú la cierres explícitamente o hasta que finalice el timeout. Por tanto, no veo mucha necesidad de monitorizar su estado, si usas una función de conexión que primero chequee si está abierta y en caso contrario se vuelva a conectar.

Te dejo dicha función, que deberás llamar siempre antes de ejecutar una consulta con cn.Exec:

' develve TRUE sólo en caso de error
PUBLIC FUNCTION connDB() AS Boolean
    DIM cn AS Connection

    cn.Type = "mysql"
    cn.Host = "host" 'Cambiar por el host de tu servidor de MYSQl
    cn.User = "user" 'Usuario de Mysql
    cn.Password = "pass" 'Contraseña de Mysql
    cn.Name = "Nombre_DB" 'Nombre de Base de Datos
    
    IF cn <> NULL THEN RETURN FALSE
    
    cn = NEW Connection
        
    TRY cn.Open()
    
    IF ERROR THEN
        cn = NULL
        Message.Error(("Error connecting to database: ") & cn.Name)
        RETURN TRUE
    ENDIF
    
    RETURN FALSE
  
END


Para usarla:

IF connDB() THEN RETURN    '<<---
sql = "SENTENCIA SQL"
cn.Exec(sql)


De manera que si la conexión estaba cerrada, retornará FALSE y abrirá la conexión y en caso contrario, si estaba abierta (no es NULL) retornará también FALSE y saldrá de la función sin hacer nada. En caso de error, retornará TRUE después de avisar del error.



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Miercoles, 17 Marzo 2010, 18:58 ]
Responder citando    Descargar mensaje  
Mensaje Re: Mensaje De Conexión 
 
buenas jguardon, gracias por tu respuesta es verdad lo que dices, molestaría mucho al usuario. pero me gusto la idea de las imágenes; teniendo ya las imágenes como podría hacer que cambien dependiendo de la conexion?



 
techm3 - Ver perfil del usuario Enviar mensaje privado  
techm3 [ Miercoles, 17 Marzo 2010, 20:36 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron