Cagar Datos en MSHFlexGrid

Hola amigo tengo una consulta quiero cargar información en un FlexGrid.
Este es el procedure:
CREATE proc sp_Listar_Provincias
as
select * from Provincia
order by CodProvincia asc
GO
la clase a la que  le llamo es:
Public Function ListarProvincia() As String
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
With cmd
        .ActiveConnection = CadenadeConeccion
        .CommandType = adCmdStoredProc
        .CommandText = "sp_Listar_Provincias"
         Set sp_Listar_Provincias = .Execute
    End With
     Set cmd = Nothing
End Function
nose si esta todo bien asta aca?? Haber porfavor si me  ayuda y ademas como debo llamarlo desde el formulario para  enlazarlo con el DataSource al Flexgrid
1

1 Respuesta

566.650 pts. Desarrollador de aplicaciones en plataforma
Esta linea:
Set sp_Listar_Provincias = .Execute
La cambias por esta:
rs=.Execute
Luego en rs tienes el resultado de la consulta a la base de datos, haces un
Do While Not rs.eof 
Y lo recorres y asignas los datos al MSFlexGrid.
Hola amigo Experto mi problema persiste no se que es lo que falta. No se que es lo que esta mal haber si me da un a mano le agradeceré mucho figese así le llamo desde el formulario el problema es no se como referenciarlo a la conexión del procedure que esta en la ClaseMensajeria
Private Sub Cargar_Mensajes()
Set rs = New ADODB.Recordset
'Dim objconexion As New ClaseSisconi.ClaseMensajeria --clase que contiene al procedure
Do While Not rs.EOF
mhsMensajes.DataSource = rs
End If
End Sub
Me sale un problema en el datasource no le reconoce.
Este es el código:
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    With rs
        .ActiveConnection = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _
            App.Path & "\SYSTEM_DB_01.mdb"
        .CursorType = adOpenStatic
        .CursorLocation = adUseClient
        .Open "Select * from producto"
    End With
    Set MSHFlexGrid1.DataSource = rs

Creo que no no tengo que explicarte que debes cambiar los parámetros aquí expuestos por los datos de tu base de datos
Gracias por la respuesta amigo. Creo no me entendiste bien amigo.
Haber te explico de nuevo.
1ero. Trabajo con una clase: llamada "ClaseMensajeria"
Private Function CadenadeConeccion() As String
CadenadeConeccion = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Osinergmin;Data Source=."
End Function
Public Function ListarTodos() As String
       Dim cmd As New ADODB.Command
       Dim rs As New ADODB.Recordset
    With cmd
        .ActiveConnection = CadenadeConeccion
        .CommandType = adCmdStoredProc
        .CommandText = "sp_Listar_Provincias"
        Set rs = .Execute
        End With
End Function
2do. Lo llamo de la siguiente  manera desde el formulario.
Sub cargar_Mensaje()
Dim objListarProvincias As ClaseSisconi.ClaseMensajeria
Do While rs.EOF Or rs.BOF
mhsMensajes.DataSource objListarProvincias.ListarTodos  'el problema surge aca ya que No reconoce  al DataSource el mensaje dice uso no valido de la  propiedad.
Loop
End Sub
agradesco tu respuesta  amigo.
No veo que abras ni que inicialices un objeto Connection, por eso te ad el error, la base de datos no esta abierta
Gracias amigo por la pronta respuesta.
La conexión esta en la clase ClaseMensajeria ahí enlazo al procedure y si te fijas le invoco a esa clase con estas lineas creo que acá esta el problema.
Dim objListarProvincias As ClaseSisconi.ClaseMensajeria
Do While rs.EOF Or rs.BOF
mhsMensajes.DataSource objListarProvincias.ListarTodos 
cundo hago el llamado a la clase mensajeria ya  la conexion ahi esta  abierta verdad??
nose que esta  pasando haber si me explicas algo mas amigo experot telo agradecere  mucho.
Si estas usando esa condición de Do While, creo que esta errada, por que lo que traduce es lo siguiente: "Si es el final o es el Principio, ejecute las instrucciones dentro del Do While". Considero que debe ser si no es ...
Gracias amigo por la respuesta. ¿Pero me gustaría re preguntarte sino esta bien como le estoy haciendo donde esta entonces según tu criterio como debería ser? '
Agradezco su respuesta
Tienes que negar esa condicion, not rs.orf and not rs. Bof
La verdad nada amigo ya hice lo que me dijiste fíjate bien pero igual no funciona no reconoce al DataSource acá tenmando el código la verdad no doy como enlazar la clase con el formulario ya que en la clase no tengo parámetros, algo estoy haciendo mal.
>Con este código llamo a la clase.
Private Sub Cargar_Flex()
Set rs = New ADODB.Recordset
Dim objconexion As New ClaseSisconi.ClaseUnidadNegocio
Respuesta = objconexion.ListarTodos
Do While Not rs.EOF And Not rs.BOF
mhsUnidadesNegocio.DataSource = rs
Loop
End Sub
>Clase.
Public Function ListarTodos() As String
       Dim cmd As New ADODB.Command
       Dim rs As New ADODB.Recordset
       Set rs = New ADODB.Recordset
    With cmd
        .ActiveConnection = CadenadeConeccion
        .CommandType = adCmdStoredProc
        .CommandText = "sp_Listar_UnidadNegocio"
        Set rs = .Execute
    End With
     Set cmd = Nothing
    End Function
Agradezco muy infinitamente tu yuda creo que falta poco.
Ni idea, no entiendo lo que inetentas hacer...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas