FoxPro/Visual FoxPro - Ayuda Con esto

 
Vista:

Ayuda Con esto

Publicado por Oscar Ramirez (79 intervenciones) el 16/05/2007 19:10:47
Necesito eliminar un Registro:
Con la primera instrucciones los elimina de la tabla pero fisicamente estan y cuando voy a ingresar otro registro con el mismo codigo no me lo acepta por que fisicamente aparece en la tabla.

con la segunda instruccion lo elimina fisicamente de la tabla, perfecto pero aparece error por que debo abrir la tabla en modo exclusivo

necesito ayuda por favor con esto.

Borrar= Messagebox("Esta seguro que desea eliminar este registro?",4+48,"Advertencia")
If Borrar=6
Delete
Go Top
Set Deleted On && Oculta los Registros Marcados
EndIf
Thisform.Refresh

Ahora que si quieres borrar definitivamente los registros:

Borrar= Messagebox("Esta seguro que desea eliminar este registro?",4+48,"Advertencia")
If Borrar=6
Delete
pack
Go Top
EndIf
Thisform.Release
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:Ayuda Con esto

Publicado por Plinio (7841 intervenciones) el 16/05/2007 19:20:35
Ya viste la solucion que te ofreci abajo?
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
sin imagen de perfil

RE:Eliminando con PACK

Publicado por neo (1604 intervenciones) el 16/05/2007 20:01:30
En un boton llamado Eliminar:

Quitando la exclusividad:

Eliminar=messagebox("Está seguro de Eliminar todos los Datos, No podrá recuperarlos una vez eliminados",289,"ATENCIÓN")
if Eliminar=1 then
USE equipos_cargados.dbf IN 0 EXCLUSIVE
PACK

WAIT WINDOW "Eliminando Registros, Espere un Momento..." TIMEOUT 6

REINDEX
CLOSE DATABASES ALL
CLOSE TABLES ALL
THISFORM.RELEASE
ELSE
thisform.Release
Wait Window "Proceso Cancelado" Timeout .8
ENDIF
***********************FIN***********
Ahora bien, el codigo anterior lo usaba el año pasado; ahora lo que yo hago es:
Cierro la tabla en tiempo ejecucion y lo abro de nuevo, para quitarle la exclusividad. entonces:

SELECT 1
if thisform.t2.value= " " then
messagebox("No hay registro para eliminar")
else
thisform.cmdeliminar.enabled=.f.
thisform.cmdsal.enabled=.f.

mensaje=messagebox("Seguro de Eliminar el Registro?",4+32+256,"Eliminar")
do case
case mensaje =6
CLOSE DATABASE
Set Exclusive On
OPEN DATABASE "bdatos.dbc"
SELECT 1
use "datos.dbf"

SELECT 1
nom1=alltrim(thisform.t2.value)
locate for nombre=nom1
if found() then
DELETE
PACK
Thisform.Refresh

WAIT WINDOW "Datos Eliminados" TIMEOUT 1
Thisform.Refresh

else
messagebox("Registro no encontrado para su eliminacion")
Thisform.e1.setfocus
endif
case mensaje=7
thisform.refresh

thisform.cmdeliminar.enabled=.t.
thisform.cmdcan.Enabled=.t.
thisform.cmdsal.enabled=.t.
endcase

ENDIF
WAIT WINDOW "Reindizando datos, se cerrará la pantalla" TIMEOUT 2
Thisform.release

***********************FIN*************

Con esto te puedes dar una idea de como eliminar archivos..para PACK

Suerte►
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