FoxPro/Visual FoxPro - delete on

 
Vista:

delete on

Publicado por Sebastian (253 intervenciones) el 15/07/2008 16:16:46
hola programadores tengo este codigo en el boton eliminar funciona bien pero cuando agrego un registro nuevo, el autogenerado lo toma encuenta y me sale error ejem.
tengo en la tabla 01,02 supuestamente elimino 02, cuando vuelvo a grabar un registro nuevo es ahi donde lo toma encuenta.
intente colocar el pack debajo del detele pero el grid se pone de color blanco y ya no se muestra la informacion pueden ayudarme

selec tabla1
if messagebox("Seguro de eliminar el registro",36,"Confirmacion")=6
set delete on
delete
thisform.grid1.refresh
thisform.refresh
endif

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:delete on

Publicado por HELDER MARTINEZ (711 intervenciones) el 15/07/2008 16:33:48
debes poner el set delete on en el evento init o load del form. para activar la eliminacion de registros o Especifica si Visual FoxPro procesará o no los registros marcados para su eliminación.


***pon esto en el boton Eliminar.

LOCAL cVariable
SELECT MiTabla
cVariable=ALLTRIM(CampoTabla)

m=MESSAGEBOX("¿Desea eliminar el Dato de: "+cVariable+"?", 4+48+256, "Eliminando datos")

IF m= 6
SELECT MiTabla
DELETE
thisform.grid.refresh
ELSE
m=MESSAGEBOX("El credito no fue eliminado", 0+64, "Acción cancelada")
ENDIF

Saludes
Helder Martinez
Honduras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por Sebastian (253 intervenciones) el 15/07/2008 16:54:43
Gracias amigo esta mucho mejor tu codificacion pero necesito eliminar completamente ese registro porque no me deja agregar otro nuevo porque lo sigue considerando en la tabla el que esta marcado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por alexcoinc (450 intervenciones) el 15/07/2008 17:20:59
Con el set dele on en el init de la forma funciona, pero sería mejor en el programa principal para que te sirva en toda la aplicación (ya te olvidas que esto está funcionando); ahora recuerda que el set dele on es solo para evitar trabajar con los registros que se marcan cuando utilizas DELETE en una tabla. Por otro lado no es sano ni recomendable que utilices PACK en el proceso del borrado, es decir inmediatamente después del DELETE pues tendrías que bloquear la tabla y eso ocasiona demoras en tu sistema; mas bien utiliza PACK, como 'herramineta', para hacer mantenimiento en una rutina aparte de la aplicación o en una parte en la cual solo el administrador pueda estar trabajando solo; eso es lo mas recomendable y sano y lo mejor evita problemas de indices dañados, etc.

A MODO DE RESUMEN:

SET DELE ON .... No trabajaremos con registros marcados o borrado logicamente
DELETE ... Marca o borra logicamente
PACK... Borra fisicamente (desaparecen) los registros marcados o borrado logicamente

Cabe destacar que un registro marcado o borrado lógicamente se puede recuperar, pero un registro o grupo de ellos, borrados con PACK, no se pueden recuperar.

Espero haberte recordado ciertos detallitos que aveces se le envolatan a uno.

alexcoinc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por Sebastian (253 intervenciones) el 15/07/2008 17:51:22
Gracias pero entonces como hago para que el registro eliminado no sea contado al momento que guarde otro registro porque el autogenerado lo toma encuenta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por enrique (1041 intervenciones) el 15/07/2008 18:53:41
Prueba lo siguiente:

Supongamos que la tabla es TABLA1 y el indice unico o principal INDICE1

use tabla1
append from tablaxx for !indexseek(tablaxx.codigo,.f.,"tabla1","indice1")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por Sebastian (253 intervenciones) el 15/07/2008 19:50:52
Gracias por la ayuda voy a intentarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por alexcoinc (450 intervenciones) el 15/07/2008 21:20:16
Haber Hombre Sebastian, estas preguntando en el foro, Como hago para que un registro no sea tomado encuenta o que no sea contado.

Te lo digo pues estas dos cosas son diferentes:

Tomar en cuenta es una cosa, ahora CONTAR ES OTRA COSA.

Aclara eso para poderte ayudar !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por Sebastian (253 intervenciones) el 15/07/2008 22:50:33
Hola gracias ya solucione el problema gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:delete on

Publicado por dervis  (1 intervención) el 03/02/2009 22:40:52
hola muy buenas tarde yo quisiera q me ayudaran en como ago para elavora en free pascal el juego demos la vuelta al relo, estas son las indicaciones y yo alla como expresarla en free pascal le agradeseria mucho su colavaoracion

Existe un juego llamado Demos la vuelta al reloj. Comenzamos a las doce en punto y se lanza una moneda.
Si se obtiene cara, avanzamos una hora. Si se obtiene sello, retrocedemos una hora. Se lanza la moneda una
segunda oportunidad, pero ahora hay que avanzar dos horas en el caso de que salga cara, o retroceder dos horas
en el caso de sello. En una tercera lanzada, se avanza o se retroceden tres horas usando el mismo principio.
En general, la enésima lanzada de la moneda decide el sentido en el se desplazará n horas: se avanza con cara,
y se retrocede con sello.
Escriba un programa que permita jugar Demos la vuelta al reloj en dos modos: modo interactivo y modo
por lotes.
Modo Interactivo. Este es un modo donde se va ejecutando el programa paso a paso e interactivamente
con el usuario. El programa debe:
 Mostrarle al usuario donde se encuentra
 Preguntar si se desea continuar o salir
 Simular la lanzada de la moneda al aire e indicar que se obtuvo: cara o sello.
 Dependiendo de lo obtenido, avanzar o retroceder los pasos que les corresponda
 Volver a mostrarle al usuario su ubicación y comenzar el ciclo de nuevo
Modo por Lotes. Este modo se recibe de antemano los resultados de los lanzamientos de las monedas. El
programa debe:
 Pedirle al usuario que introduzca una cadena de caracteres con los resultados de los lanzamientos.
Esta entrada debe ser una cadena sin espacios en blanco que contiene únicamente las letra 'c' o 's'
para cara o sello respectivamente. Observe que el número de lanzamientos está determinado por la
longitud de la cadena introducida por el usuario
1
 El programa debe realizar la simulación del juego con los valores introducidos en el paso anterior
 Al nal el programa debe reportar la ubicación nal del jugador.
Cuando comienza el programa, se le debe preguntar al usuario el modo en el cual se desea jugar. Una vez
culminado el juego, debe existir la oportunidad de jugar de nuevo.
NOTA. En el transcurso de la semana se suministrarán casos de prueba para cada uno de los dos ejercicios. De
esta manera ustedes pueden comprobar que sus respuestas estén correctas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar