Tengo el siguiente codigo en una dll en la cual quiero obtener los datos de una base de datos en interbase. Todo me funciona correctamente cuando establezco la propiedad de consulta a una consulta de sql que no tenga "where" (por ejemplo 'select * from empleados) , pero en cuanto hago una consulta del tipo ('select * from empleados where nombre="") entonces ya me salta un error "error en el metodo '~' del object '~'"
¿que puede estar pasando?
- Código: Seleccionar todo
Private c As ADODB.Connection
Private rst As ADODB.Recordset
'********************propiedades del componente*************************
Private gsConsulta As String
Private mNumRegistro As Integer
Public Property Let consulta(ByVal sql As String)
gsConsulta = sql
End Property
Public Property Get consulta() As String
consulta = gsConsulta
End Property
Public Property Get numRegistro() As Integer
On Error GoTo err_numRegistro
numRegistro = mNumRegistro
Exit Sub
err_numRegistro:
'MsgBox "Primero hay que ejecutar la consulta antes de acceder a esta propiedad"
MsgBox "Num registro :" & Err.Description
End Property
'**********************metodos del componente**********************
Public Function ejecutarconsulta() As Variant
On Error GoTo err_conexion
Dim varRecords As Variant
If IsNull(consulta) Then
MsgBox "No se puede continuar, no especifico ninguna consulta"
Else
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open gsConsulta, c, adOpenKeyset, , adCmdText
'Set varArray = recordset.GetRows(numrows)
mNumRegistro = rst.RecordCount
varRecords = rst.GetRows(rst.RecordCount)
ejecutarconsulta = varRecords
End If
Exit Function
err_conexion:
MsgBox "Ejecutar :" & Err.Description
End Function
'***************************eventos del componente******************************
Private Sub class_Initialize()
On Error GoTo err_class_Initialize
Set c = New ADODB.Connection
c.ConnectionString = "Provider=SIBPROvider.2;Data Source=localhost:d:\gestionADC.gdb;Persist Security Info=False"
c.CursorLocation = adUseClient
c.Open
Exit Sub
err_class_Initialize:
MsgBox "Inicializar :" & Err.Description
End Sub
Private Sub class_Terminate()
On Error GoTo err_terminate
rst.Close
Set rst = Nothing
c.Close
Set c = Nothing
'MsgBox "termina"
Exit Sub
err_terminate:
MsgBox Err.Description
End Sub
Gracias a todos




