• Domingo 22 de Diciembre de 2024, 18:13

Autor Tema:  Tratamiento De Problemas De Acceso A Sqlserver  (Leído 1057 veces)

jorge.adell

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Tratamiento De Problemas De Acceso A Sqlserver
« en: Miércoles 7 de Enero de 2004, 06:36 »
0
:comp:
Tengo una aplicacion que accede a un SQLserver y quiero controlar posibles desconexiones con el servidor para esto cree un procedimiento donde unicamente de este lugar hago la unica operacion con la base de datos (INSERT INTO). De esta manera si hay error sera en este procedimiento y puedo controlarlo.
Les muestro como escribi el procedimiento y queria saber si les parece bien o si algo tendria que mejorar, o si alguno lo resolvio de otra manera.
Me aseguro que la cadena enviada al procedimiento no contenga errores
Supongo que el unico error es por una desconexion con el servidor.

Private Sub InsertData(cadena As String)
   
          On Error Resume Next
   
          Do
               conn.Execute cadena  'Unico lugar del programa que ejecuta insert into
               If Err.Description = "" Then Exit Do 'Si no hubo error salgo del bucle
               Open LOGERROR For Append As #1 'abro archivo de log de errores.
               Print #1, Err.Number & " " & Err.Description
               Print #1, cadena
               Close #1
               If MsgBox("Error al insertar datos. ¿Intentar reconexión? ", _
                               vbCritical + vbRetryCancel, _
                               "Error de conexión") = vbCancel Then End
               conn.Close
               Set conn = Nothing
               Set conn = New ADODB.Connection
               conn.Open UdlString, , "osado"
               Err.Clear
           Loop While True

End Sub

Les agradeceria criticas a este procedimiento.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Tratamiento De Problemas De Acceso A Sqlserver
« Respuesta #1 en: Jueves 8 de Enero de 2004, 12:57 »
0
Hola jorge.adell.

No estaría mal supervisar los posibles errores que se produzcan de este otro modo... aunque es parecido a lo que tu haces

Código: Text
  1.  
  2. Private Sub InsertData(cadena As String)
  3.  
  4. Ejecutar:
  5.     On Error GoTo Err_InsertData
  6.     conn.Execute cadena
  7.     Exit Sub
  8.  
  9. Err_InsertData:
  10.     On Error Resume Next
  11.     Dim intCanal As Integer
  12.     intCanal = FreeFile
  13.     Open LOGERROR For Append As #intCanal
  14.     Print #intCanal, Err.Number & " " & Err.Description
  15.     Print #intCanal, cadena
  16.     Close #intCanal
  17.  
  18.     If Err.Number = XXXX Then
  19.         'XXXX sería el número de error que te interese.
  20.         'En este caso no sé cual es, pero lo puedes averiguar
  21.         'forzando el error.
  22.         If MsgBox("Error al insertar datos. ¿Intentar reconexión? ", _
  23.         vbCritical + vbRetryCancel, "Error de conexión") = vbCancel Then End
  24.         conn.Close
  25.         Set conn = Nothing
  26.         Set conn = New ADODB.Connection
  27.         conn.Open UdlString, , "osado"
  28.         Resume Ejecutar
  29.     Else
  30.         MsgBox "(" & Err.Number & ") " & Err.Descriptionm, vbCritical, "Error inesperado"
  31.     End If
  32.    
  33. End Sub
  34.  
  35.  

Suerte.

jorge.adell

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Tratamiento De Problemas De Acceso A Sqlserver
« Respuesta #2 en: Viernes 9 de Enero de 2004, 06:09 »
0
Gracias por tu aporte amigo!!!, o sea que como lo hice esta bien.
Es que no necesito informar el tipo de error solo quiero hacer un intento y como
la cadena que viene como parametro esta escrito de manera correcta no es problema de sintaxis u otro tipo de problemas mas que la desconexion con el servidor.

Gracias..