SoloCodigo

Programación General => Visual FoxPro => Mensaje iniciado por: Emilianov en Domingo 22 de Junio de 2008, 21:47

Título: errores en tablas y formularios
Publicado por: Emilianov en Domingo 22 de Junio de 2008, 21:47
Buenas tardes, quisiera hacerle un par de prreguntas acerca de VFP 8.0. Actualmente estoy desarrollando un sistema de facturación, me están surgiendo múltiples errores, quisiera comentarle algunos, a lo mejor usted me sabe decir en dónde debería revisar:

1) Problemas con Pack y Delete

Al examinar una tabla es posible "marcar" un registro como borrado, luego con pack eliminarlo definitivamente. Bueno, en mi sistema si marco como borrado un registro y luego cierro la tabla, al abrirla se me borró el registro, como si hubiese puesto la propiedad pack. ¿Cómo hago para que esto no suceda? .

Además, si marco como borrado un registro y luego en la ventana de comandos (con la tabla abierta) escribo el comando pack me aparece un mensaje que dice "Debe abrir el archivo de modo exclusivo", pero si cierro y vuelvo a abrir lo eliminó ¿Por qué me sucede eso?

2) Conflicto de actualización:

En uno de mis formularios, presento una lista con todos los clientes de puedo facturar (trabajo con un sistema para un proveedor de Internet), permito seleccionar (en un grid) algunos registros para factura
Título: Re: errores en tablas y formularios
Publicado por: arielb en Lunes 23 de Junio de 2008, 16:13
Hola, en el borrado de registros se maneja el concepto de borrado lógico y borrado fisico.
Cuando le colocas a un registro la marca negra que dices esto viendo siendo borrado lógico, al hacerle el pack estás haciendo un borrado fisico.
Código: Text
  1. si marco como borrado un registro y luego cierro la tabla, al abrirla se me borró el registro,
  2.  

no es que se borró es que el set deleted  está activado (ON), si deseas verlos nuevamente debes poner en la consola
Código: Text
  1. set delete off
  2.  

y si quieres que en tú programa esté activo siempre lo colocas en el prg inicial o cuando lo necesites.
si vas a usar el set delete off debe utilizar en tus sentencias "not deleted" algo así
Código: Text
  1. select * from tabla where usuario = "juez" and not deleted
  2.  

En el caso 2 no comprendo el problema
Código: Text
  1.  
  2. En uno de mis formularios, presento una lista con todos los clientes de puedo facturar (trabajo con un sistema para un proveedor de Internet), permito seleccionar (en un grid) algunos registros para factura.
  3.  

Bueno saludos, espero te sirva