• Lunes 23 de Diciembre de 2024, 08:12

Autor Tema:  Dll Conexion A Datos  (Leído 850 veces)

Fany10

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Dll Conexion A Datos
« en: Lunes 7 de Agosto de 2006, 10:58 »
0
Hola a todos,
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: Text
  1.   Private c As ADODB.Connection
  2.   Private rst As ADODB.Recordset
  3.  
  4. '********************propiedades del componente*************************
  5. Private gsConsulta As String
  6. Private mNumRegistro As Integer
  7.  
  8. Public Property Let consulta(ByVal sql As String)
  9.    gsConsulta = sql
  10. End Property
  11.  
  12. Public Property Get consulta() As String
  13.     consulta = gsConsulta
  14. End Property
  15.  
  16. Public Property Get numRegistro() As Integer
  17. On Error GoTo err_numRegistro
  18.  
  19.     numRegistro = mNumRegistro
  20.    
  21.     Exit Sub
  22.    
  23. err_numRegistro:
  24.     'MsgBox "Primero hay que ejecutar la consulta antes de acceder a esta propiedad"
  25.     MsgBox "Num registro :" & Err.Description
  26. End Property
  27.  
  28. '**********************metodos del componente**********************
  29.  
  30. Public Function ejecutarconsulta() As Variant
  31. On Error GoTo err_conexion
  32.  
  33.   Dim varRecords As Variant
  34.   If IsNull(consulta) Then
  35.       MsgBox "No se puede continuar, no especifico ninguna consulta"
  36.   Else
  37.      Set rst = New ADODB.Recordset
  38.      rst.CursorLocation = adUseClient
  39.      rst.Open gsConsulta, c, adOpenKeyset, , adCmdText
  40.      'Set varArray = recordset.GetRows(numrows)
  41.      mNumRegistro = rst.RecordCount
  42.      varRecords = rst.GetRows(rst.RecordCount)
  43.      ejecutarconsulta = varRecords
  44.   End If
  45.  
  46.   Exit Function
  47.  
  48. err_conexion:
  49.    MsgBox "Ejecutar :" & Err.Description
  50. End Function
  51.  
  52. '***************************eventos del componente******************************
  53. Private Sub class_Initialize()
  54. On Error GoTo err_class_Initialize
  55.  
  56.    Set c = New ADODB.Connection
  57.    c.ConnectionString = "Provider=SIBPROvider.2;Data Source=localhost:d:\gestionADC.gdb;Persist Security Info=False"
  58.    c.CursorLocation = adUseClient
  59.    c.Open
  60.    
  61.    Exit Sub
  62.    
  63. err_class_Initialize:
  64.    MsgBox "Inicializar :" & Err.Description
  65. End Sub
  66.  
  67. Private Sub class_Terminate()
  68. On Error GoTo err_terminate
  69.  
  70.     rst.Close
  71.     Set rst = Nothing
  72.     c.Close
  73.     Set c = Nothing
  74.    'MsgBox "termina"
  75.    
  76.    Exit Sub
  77.    
  78. err_terminate:
  79.    MsgBox Err.Description
  80. End Sub
  81.  


Gracias a todos