Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/06/2010, 15:06
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: [Ayuda] Vb 2010 Mysql

Para verificar si está o no abierta, y si lo está previene que se haya cambiado de base:
Código vb.net:
Ver original
  1. 'CONECTAR a la base de datos
  2.     Public Function Conectar() As Boolean
  3.         Dim strCx As String
  4.         Dim SetDatos As New DataSet
  5.         If Not Conexion Is Nothing Then
  6.             If Conexion.State = 1 Then
  7.                 If Conexion.Database <> ConstBase Then
  8.                     Conexion.ChangeDatabase(ConstBase)
  9.                 End If
  10.                 Return True
  11.             ElseIf Conexion.State = ConnectionState.Closed Then
  12.                 Try
  13.                     Conexion.Open()
  14.                     If Conexion.Database <> ConstBase Then
  15.                         Conexion.ChangeDatabase(ConstBase)
  16.                     End If
  17.                     Sentencias = New MySqlCommand("SET SESSION SQL_BIG_SELECTS=1;", Conexion)
  18.                     Sentencias.ExecuteNonQuery()
  19.                 Catch ex As Exception
  20.                     MessageBox.Show("El servidor responde: " & vbCrLf & ex.Message, "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  21.                 End Try
  22.                 Return True
  23.             Else
  24.                 Return False
  25.             End If
  26.         Else
  27.             Try
  28.                 strCx = "Database=" & nuevoLogin.RegServer.Ip & ";Data Source=" & nuevoLogin.NombreBase & ";User Id=" & nuevoLogin.usuario.UserName & ";Password=" & nuevoLogin.usuario.PasWord & ";Port=" & nuevoLogin.RegServer.Port.ToString & ";CharSet=utf8;Pooling=false;"
  29.                 Conexion = New MySqlConnection(strCx)
  30.                 Conexion.Open()
  31.                 sSQL = "SHOW PROCESSLIST;"
  32.                 Adapter = New MySqlDataAdapter(sSQL, Conexion)
  33.                 Adapter.Fill(SetDatos, "LISTAPROCESOS")
  34.                 If SetDatos.Tables("LISTAPROCESOS").Select("USER = '" & nuevoLogin.usuario.UserName & "'").Length > 1 Then
  35.                     Conexion.Close()
  36.                     MessageBox.Show("No se puede realizar la conexión." & vbNewLine & "El usuario " & nuevoLogin.usuario.UserName & "está conectado desde otro puesto.", "Error: ADMINISTRADOR ACTIVO", MessageBoxButtons.OK, MessageBoxIcon.Error)
  37.                     Return False
  38.                 End If
  39.             Catch ex As MySqlException
  40.                 Select Case ex.Number
  41.                     Case 0
  42.                         MessageBox.Show("El servidor no responde." & vbCrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  43.                     Case 1226
  44.                         MessageBox.Show("El usuario ingresado ya se encuentra logueado en otro puesto.", "Error de usuario en conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  45.                     Case 1045
  46.                         MessageBox.Show("El nombre de usuario o la clave son incorrectas." & vbCrLf & "Vuelva a ingresarlas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  47.                     Case 2003
  48.                         MessageBox.Show("El Server no responde." & vbCrLf & "Puede haber problemas en la intranet." & vbCrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  49.                     Case 1049
  50.                         MessageBox.Show("La base de datos no existe." & vbCrLf & "Notifique al Administrador del sistema.", "Error de conexión a la base", MessageBoxButtons.OK, MessageBoxIcon.Error)
  51.                 End Select
  52.                 Return False
  53.             End Try
  54.             Return True
  55.         End If
  56.     End Function
ConstBase es una constante de tipo string que contiene el nombre de la base de datos usada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 18/06/2010 a las 16:32