Cursor

Hola que tal hey la vez pasada al final me sirvió mucho te ejemplo
gracias . :)
Hoy quería molestarte con algo más tengo esta sintaxis o más bien un ejemplo de como crear un cursor es el siguiente:
close databases
clear
CREATE CURSOR cursi (ide N(5), nombre C(20), dirección C(30), oficina C(8) NULL, Specialty M)
display structure
WAIT WINDOW "Press a key to add a record."
INSERT INTO cursi (ide, nombre, direccion, oficina, Specialty);
 VALUES (ide2, +nombre+'Dr. House', "ICEC", "", "Secondary educ")
BROWSE
* A este punto usted podría copiar este expediente a una tabla permanente
CLOSE ALL   && Una vez que el cursor es cerrado, se limpian todos los datos
      && de memoria
wait
*CLEAR
Lo use y me funciono, solo se que sirve para crear una tabla temporal, lo que no se es como en que casos tengo que usarla
y como me sirve ami eso.
No si me puedes ayudar.

2 Respuestas

Respuesta
1
Los cursores se utilizan como medios para consultar información de bases de datos y sirven también para actualizar información de una base de datos remotas y diría que esta es su principal función, aquí te coloco un ejemplo de actualización de una tabla remota:
Local lcConexion, lcTablas
*Store Sqlstringconnect("dsn=Mariana;uid=Lorena;pwd=1234") To lcConexion
Store Sqlconnect("Mariana") To lcConexion
If lcConexion < 0
  =Messagebox('No se puede conectar.', 16, 'Error de conexión SQL')
  Return
Endif
a = "0203"
b = "Yuly Marcela"
c = "Muñoz Erazo"
d = "7235843"
e =Sqlexec(lcConexion, "Select * From Notebook", "MiCursor")
e =CursorSetProp("Tables","Notebook","MiCursor")
e =Cursorsetprop("UpdateNameList", "friend_id Notebook.friend_id,friend_las Notebook.friend_las,friend_nam Notebook.friend_nam,friend_pho Notebook.friend_pho","MiCursor")
e =CursorSetProp("KeyFieldList", "friend_id", "MiCursor")
e =CursorSetProp("UpdatableFieldList","friend_id, friend_las,friend_nam,friend_pho", "MiCursor")
=CursorSetProp("SendUpdates",.T.,"MiCursor")
Insert Into MiCursor (friend_id,friend_las,friend_nam,friend_pho) Values (a,c,b,d)
Select MiCursor
e =Tableupdate(.T.)
If !e
  =Messagebox("Falló la actualización de la tabla remota.", 48, "Error")
  =Tablerevert(.T.)
Endif
e =Sqldisconnect(lcConexion) 
Para mayor información consulta el manual del programador de Visual FoxPro.
Respuesta
Si se usa en casos como :
1. Facturación, puedes ligar la tabla temporal a un grid para mover lo que es el detalle.
2. Informes especiales en el que debes pasar datso de filas a columnas,
son dos casos apenasEspero te sirva la información.
Éxitos. No olvides finalizar la pregunta
¿mmm pero eso me puede servir si lo uso en una factura? ¿Es igual a como usarlo en un formulario donde registre compras?
¿Pero en que me beneficia usarla temporalmente
si hay otra opción que no sea usando el cursor?
Al usarlo como temporal solo cargas los items de facturación de la factura activa y no tienes que preocuparte por controlar filtros, que para este caso es un poco engorroso, ademas si al final no quieren grabar la factura simplemente la borran y listo.
Éxitos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas