Programación General > Visual Basic 6.0 e inferiores
Tratamiento De Problemas De Acceso A Sqlserver
(1/1)
jorge.adell:
: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:
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 --- Private Sub InsertData(cadena As String) Ejecutar: On Error GoTo Err_InsertData conn.Execute cadena Exit Sub Err_InsertData: On Error Resume Next Dim intCanal As Integer intCanal = FreeFile Open LOGERROR For Append As #intCanal Print #intCanal, Err.Number & " " & Err.Description Print #intCanal, cadena Close #intCanal If Err.Number = XXXX Then 'XXXX sería el número de error que te interese. 'En este caso no sé cual es, pero lo puedes averiguar 'forzando el error. 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" Resume Ejecutar Else MsgBox "(" & Err.Number & ") " & Err.Descriptionm, vbCritical, "Error inesperado" End If End Sub
Suerte.
jorge.adell:
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..
Navegación
Ir a la versión completa