Capturar / evitar error en caso de recordset vacio

Iniciado por raul338, 9 Junio 2010, 13:51 PM

0 Miembros y 1 Visitante están viendo este tema.

raul338

Hoolas!!

Estoy programando un sistema de gestion en vb6 y mysql, con ado por codigo
todo va de maravilla, salvo que hay veces que salta error al intentar trabajar con un recordset vacio. Pero.... por mas que evalue si esta vacio me tira el error  :laugh:

Este es el codigo:
Código (vb) [Seleccionar]

    Private Function Ejecutar() As Boolean
        Debug.Print Time & " - " & Consulta & vbCrLf
               
        If Not cnnDatos.Execute(Consulta) Is Nothing Then
            Set rsDatos = cnnDatos.Execute(Consulta)
            If Not (rsDatos.BOF And rsDatos.EOF) Then rsDatos.MoveFirst
            Ejecutar = True
        Else
            Ejecutar = False
        End If
    End Function


Siendo cnnDatos la conexion a MySQL y rsDatos un recordset

El if que evalua si el lo que devuelve el cnnDatos.execute lo agregue para tratar de caputrar el error y asi devolver falso (y decir que no hay registro), pero hay veces que el debuger se para ahi, diciendo que no se puede "abrir" el recorset o que EOF = BOF o algo asi....

Alguna ayuda/sugerencia/copy&paste :xD :¬¬?

BlackZeroX


Código (vb) [Seleccionar]


Private Function Ejecutar() As Boolean
    Debug.Print Time & " - " & Consulta & vbCrLf
    If Not cnnDatos Is Nothing Then
        Set rsDatos = cnnDatos.Execute(Consulta)
        If Not rsDatos Is Nothing Then
            Ejecutar = Not (rsDatos.BOF And rsDatos.EOF)
            If Ejecutar Then rsDatos.MoveFirst
        End If
    End If
End Function



Dulce Infierno Lunar!¡.
The Dark Shadow is my passion.

karmany

Es posible también también que el error se produzca, no porque un campo esté vacío sino porque el campo sea nulo. Este error es muy común, más cuando se trabaja con fechas. Cuando trabajes con valores nulos, haz lo siguiente:
Text1.Text = "" & textonulo 'evitas el error
valor = val("0" & texto_de_valornulo) 'Val, Csng etc... trabajar con valores numéricos.

raul338

Cita de: karmany en 11 Junio 2010, 20:35 PM
Es posible también también que el error se produzca, no porque un campo esté vacío sino porque el campo sea nulo. Este error es muy común, más cuando se trabaja con fechas. Cuando trabajes con valores nulos, haz lo siguiente:
Text1.Text = "" & textonulo 'evitas el error
valor = val("0" & texto_de_valornulo) 'Val, Csng etc... trabajar con valores numéricos.

Muchas gracias por el consejo, aunque el error sucedia exactamente en la linea del execute  :)
De todas formas nunca trabajo con nulls :D (DEFAULT "" es mejor para mi, sino me rompen los triggers :B )