Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Alternativas apara el Delete

Estas en el tema de Alternativas apara el Delete en el foro de Bases de Datos General en Foros del Web. Saludos Estoy desarrollando una aplicación en Visual Basic 6.0 utilizando una base de datos de dbaseIV con controlador ODBC pero me he encontrado con un ...
  #1 (permalink)  
Antiguo 28/10/2003, 01:25
Avatar de AlvaroHM  
Fecha de Ingreso: mayo-2002
Ubicación: Tacuba, Distrito Fedreal
Mensajes: 78
Antigüedad: 21 años, 11 meses
Puntos: 0
Pregunta Alternativas apara el Delete

Saludos

Estoy desarrollando una aplicación en Visual Basic 6.0 utilizando una base de datos de dbaseIV con controlador ODBC pero me he encontrado con un grave problema al ejecutar sentencias DELETE, resulta que ejecuto la sentencia y si utlizo una utilería que tengo para dbase efectivamente compruebo que los registros fueron borrados, sin embargo, al hacer sentencias con el mismo vusual basic me continuan apareciendo registros eliminados y no encuentro otra manera para eliminar los registros.

He abierto las tablas en FoxPro 6.0 y los registros eliminados aparecen marcados pero no eliminados, alguien sabe

¿Alguien sabe como eliminar definitivamente los regitros con una sola sentencia, sin utilizar FoxPro u otra aplicacion?

Ya actualice los controladores ODBC, las herramientas MDAC y el mismo visual basic pero sigo obteniendo el mismo problema.

La base que estoy utilizando no la puedo cambiar puesto que es la base de otra aplicación que solo trabaja bajo dbase y elo que estoy desarrollando es solo para emitir algunos reportes y para hacer algunas ediciones a la base del sistema original, por lo que, reitero, no puedo cambiar de base o formato.

Agradecere sus comentarios.
  #2 (permalink)  
Antiguo 28/10/2003, 08:41
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Tu problema es muy común cuando se usa Xbase en lo referente a borrados de registros. Te das cuenta que estan borrados porque estan marcados como tal pero te los va a seguir mostrando hasta que hagas un PACK. Pero el PACK solo funciona cuando tenes la tabla abierta EXCLUSIVO y como tu aplicación esta trabajando en red SHARED (SUPONGO) no vas a poder eliminarlo físicamente.

Una solución alternativa para que te funcione es que le agregues a la tabla o tablas un campo adicional tipo BOOLEAN llamado por ejemplo borrado o algo que identifique que el registro esta borrado. Lo inicializas en .F. (NO BORRADO) todos los registros y cada ves que vayas a borrar un registro o registros, lo cambias a .T. (BORRADO) luego modificas los índices dejando todo igual pero agregandole la sentecia WHERE borrado = .F. para que solo te muestre los registros activos.

Luego al final del día o por un proceso automático abris las tablas en forma EXCLUSIVA con otro índice donde tenga catalogado los borrados WHERE borrado = .T., los borres y luego apliques el comando PACK.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:45.