Sql + foxpro 9 + grid
Soy nueva programando en foxpro, y tengo algunos problemitas, espero me puedas ayudar.
La situación es la siguiente: tengo un formulario compuesto por un grupo de txt y un grid, hago una conexión a una bd en sql, básicamente, en el grid muestro una parte de las columnas de la tabla y al dar click en cada registro del grid, muestra los datos restantes en los txt.
¿Qué es lo que hago? Bueno,
1. En el método load de mi formulario hago la conexión a mi bd con connhandler=sqlconnect('bd'), en el unload hago sqldisconnect('connhandler'), en el init hago mi consulta sqlexec(connhandler, "select * from tabla order by clave desc", "cursor1")
2. Tengo entendido que con esta sentencia ya se crea un cursor donde se almacena toda la información y después asigno el cursor a mi grid con thisform. Grid. Recordsource="cursor1",
3. En controlsource de cada txt asigno cada uno de los campos que quiero se muestren
4. Entonces en grid en el método afterrowcolchange utilizo un thisform. Refresh para que cada que cambie de fila se muestren todos los datos en los txt
y todo marcha bien hasta ahí.
El problema viene cuando quiero actualizar, insertar o modificar los datos y que inmediatamente de ejecutar las sentencias se reflejen los datos en el grid...
Tengo un botón para cada acción insertar, modificar y eliminar, cuando doy click a alguno de ellos ejecuto la sentencia sql correspondiente, ¿y después? Como puedo colocar el foco en el registro que acabo de insertar o modificar y mostrar las actualizaciones inmediatamente en el grid y los txt.
He utilizado refresh en el form, pero creo que tengo que hacerlo en el cursor o algo así... De hecho si me pudieras dar alguna orientación sobre como utilizar un cursor, me seria de mucha ayuda.
La situación es la siguiente: tengo un formulario compuesto por un grupo de txt y un grid, hago una conexión a una bd en sql, básicamente, en el grid muestro una parte de las columnas de la tabla y al dar click en cada registro del grid, muestra los datos restantes en los txt.
¿Qué es lo que hago? Bueno,
1. En el método load de mi formulario hago la conexión a mi bd con connhandler=sqlconnect('bd'), en el unload hago sqldisconnect('connhandler'), en el init hago mi consulta sqlexec(connhandler, "select * from tabla order by clave desc", "cursor1")
2. Tengo entendido que con esta sentencia ya se crea un cursor donde se almacena toda la información y después asigno el cursor a mi grid con thisform. Grid. Recordsource="cursor1",
3. En controlsource de cada txt asigno cada uno de los campos que quiero se muestren
4. Entonces en grid en el método afterrowcolchange utilizo un thisform. Refresh para que cada que cambie de fila se muestren todos los datos en los txt
y todo marcha bien hasta ahí.
El problema viene cuando quiero actualizar, insertar o modificar los datos y que inmediatamente de ejecutar las sentencias se reflejen los datos en el grid...
Tengo un botón para cada acción insertar, modificar y eliminar, cuando doy click a alguno de ellos ejecuto la sentencia sql correspondiente, ¿y después? Como puedo colocar el foco en el registro que acabo de insertar o modificar y mostrar las actualizaciones inmediatamente en el grid y los txt.
He utilizado refresh en el form, pero creo que tengo que hacerlo en el cursor o algo así... De hecho si me pudieras dar alguna orientación sobre como utilizar un cursor, me seria de mucha ayuda.
1 respuesta
Respuesta
1