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:
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 :¬¬?
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!¡.
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.
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 )