Como puedo relacionar un grid con un cursor

Hola buenos dias todos foxeros
tengo una problema de mostrar datos de una base de datos en sql server en Grid,
el codigo lo pongo en el evento init del formulario, y pienso todo correcto pero no mi muestra nada en la grid.
el codigo es este:
LOCAL sql as String
sql="select * from agenda"
sqlResultado=SQLEXEC(con , sql, "agenda")
IF sqlResultado<1
=MESSAGEBOX("NO HAY EVENTOS")
RETURN && salir del programa
ENDIF
miGrid=thisform.grd
miGrid.ColumnCount=8
miGrid.RecordSourceType= 1
IF USED("eventosSemanales")
SELECT eventosSemanales
miGrid.RecordSource=null
miGrid.RecordSource="agenda"
*miGrid.Columns(1).Header.Caption="id"
miGrid.Columns(1).controlsource="agenda.id"
*miGrid.Columns(2).Header.Caption="fecha"
miGrid.Columns(2).controlsource="agenda.fecha"
*miGrid.Columns(3).Header.Caption=""
miGrid.Columns(3).controlsource="agenda.hora"
*miGrid.Columns(4).Header.Caption="titulo"
miGrid.Columns(4).controlsource="agenda.titulo"
*miGrid.Columns(5).Header.Caption="descripcion"
miGrid.Columns(5).controlsource="agenda.descripcion"
*miGrid.Columns(6).Header.Caption="codigoUsuarioCreador"
miGrid.Columns(6).controlsource="agenda.codigoUsuarioCreador"
*miGrid.Columns(7).Header.Caption="codigoUsuarioDestino"
miGrid.Columns(7).controlsource="agenda.codigoUsuarioDestino"
*miGrid.Columns(8).Header.Caption="realizado"
miGrid.Columns(8).controlsource="agenda.realizado"
GO TOP
miGrid.Refresh()
ENDIF
Thisform.Refresh()
CLOSE DATABASES all
tambien otra cosita, como pongo este cursor publico para manejar despues en todo el formulario.
espero que ayudais y muchas gracias

1 Respuesta

Respuesta
1
Pues creo que los pasos mas óptimos serian :
1.- en el evento load solo obtener el cursor
LOCAL sql as String
sql="select * from agenda"
sqlResultado=SQLEXEC(con , sql, "agenda")
IF sqlResultado<1
=MESSAGEBOX("NO HAY EVENTOS")
RETURN && salir del programa
ENDIF
asegurarte de que te esta devolviendo el cursor poniendo
select agenda
browse
2.- La propiedad recordsource por default del grid es 1, así que eso lo puedes omitir
3.- En el evento init del form deberías poner lo siguiente que seria suficiente para mostrar los datos
thisform. Grd.recordsource=""
thisform.grd.recordsource="agenda"
Thisform. Grd. Refresh
Con eso te debería mostrar los datos sin ningún problema y lo ultimo es que al crear el cursor en el evento load este queda publico o lo puedes usar en todo el form hasta que decidas eliminarlo usando close database
espero te sea de ayuda, suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas