Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2005
h2o_mx h2o_mx is offline
Miembro
 
Registrado: ago 2005
Posts: 17
Poder: 0
h2o_mx Va por buen camino
Borrar Registros Totalmente

Hola a todos, tengo un problema, estoy haciendo un programa en delphi y uso una base de datos dbase, pero en una tabla inserto y borro registros continuamente, y lo hace bien, pero cuando abri la base de datos con visual fox, todos los campos que he agregado alli estan solo que estan marcados como eliminados, esto es un problema por que la base de datos esta creciendo fisicamente aun que logicamente no tiene registros, como le puedo hacer para que borre los registros totalmente?., gracias
Responder Con Cita
  #2  
Antiguo 03-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Cita:
Empezado por h2o_mx
Hola a todos, tengo un problema, estoy haciendo un programa en delphi y uso una base de datos dbase, pero en una tabla inserto y borro registros continuamente, y lo hace bien, pero cuando abri la base de datos con visual fox, todos los campos que he agregado alli estan solo que estan marcados como eliminados, esto es un problema por que la base de datos esta creciendo fisicamente aun que logicamente no tiene registros, como le puedo hacer para que borre los registros totalmente?., gracias
Los ficheros xBase ( DBF, de Clipper, Foxpro o DBase ) no borran, sino que marcan como borrados. Depende que comentes utilices para acceder a ellos hay algunos que te permiten hacer un Pack del fichero, que lo que hace es eliminar los borrados, reduciendo el tamaño de la BD. Desde Visual FoxPro o dbase puedes desde comandos ejecutar PACK ( ojo el fichero debe estar abierto de modo exclusivo ). Ten cuidado, por que al crecer el número de registros marcados no solo crece el tamaño de la BD, sino que tb enlentece enormemente la apertura de la tabla ( si aunque parezca mentira me ha pasado ), e incluso el insertado.

Los Codebase Components permiten hacer el PACK, pero recuerda que debes abrir en modo exclusivo, por lo que te aconsejo que hagas un .PRG con Visual Foxpro o con dbase, o incluso un ejecutable con Delphi, y lo ejecutes con una tarea programada por las noches, asi al amanecer estara todo perfecto....
Responder Con Cita
  #3  
Antiguo 04-08-2005
h2o_mx h2o_mx is offline
Miembro
 
Registrado: ago 2005
Posts: 17
Poder: 0
h2o_mx Va por buen camino
Gracias

Muchas gracias es exactamente lo que necesitaba hacer, lo hare por que si no, despues va a ser un gran problema que mejor lo sulocionamos de una vez por todas, nuevamente gracias y hasta luego
Responder Con Cita
  #4  
Antiguo 17-01-2007
coyule coyule is offline
Miembro
 
Registrado: ene 2007
Posts: 14
Poder: 0
coyule Va por buen camino
Entonses por eso cuando borro todo el contenido de una tabla paradox tabla.db con campos autoincrement (+) si tenia 2500 registros y los borro
los nuevos no empiezan de (1)uno si no de 2501
----------------------------------------
ingreso 1
table1

campo1(clave) campo 2(articulo)
1 ------------- x articulo1
2 ------------- x articulo2
3 ------------- x articulo3
4 ------------- x articulo4
---------------------------------------------
al borrar toda la table1 y quiero empezar del uno( ahí esta el detalle )

por que logicamente al poner el primer registro que estoy viendo
debe de empezar de (1)uno y no lo hace

y enpieza asi....
-----------------------------------------------------
ingreso 2
table1

campo1(clave) campo 2(articulo)
5 ------------ x articulo1
6 ------------ x articulo2
7 ------------ x articulo3
8 ------------ x articulo4
-----------------------------------------------------

entoses si se fijan tengo una segunda clave para los
articulos del ingreso2

y eso no me sirve....
Responder Con Cita
  #5  
Antiguo 20-01-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 18
BlackDaemon Va por buen camino
Hola coyule no soy un experto en delphi y recién comienzo osea que no se si lo que leerás a continuación te sirva de algo

Pero según YO a lo que te refieres del autoincrement en un campo esta bién lo que hace las tablas... por que su concepto lo dice el valor será unico y nunca mas se repertirá y creo que así lo hace, ahora creo que al borrar un registro de una tabla como la que tienes tu de ejemplo.

campo1(clave) campo 2(articulo)
1 ------------- x articulo1
2 ------------- x articulo2
3 ------------- x articulo3
4 ------------- x articulo4

Si borras el campo 1 también sesupone que se borrará el "articulo1" osea que el proximo que insertes en ese campo será otro, aunque sea el mismo producto por ejemplo ya no sería el mismo.. puede que tenga el mismo nombre pero ya no es el mismo es otro por eso lo de :


campo1(clave) campo 2(articulo)
5 ------------ x articulo1
6 ------------ x articulo2
7 ------------ x articulo3
8 ------------ x articulo4

Que en el campo 5 y los demás cumple el concepto de que autoincrement es único .

Creo que lo que hace a una tabla así es el archivo que crea al DBD un archivo.db y un archivo.px y ahí es donde almacena ese autoincrement.

Bueno creo que me lié solo xD pero es lo mejor que pude explicar
como dije.. es mi segundo post dando una resuesta que "supuestamente" ayudará a alguien o al contrario la liará mas de lo que está

saludos y suerte
Responder Con Cita
  #6  
Antiguo 20-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Un autoincremento jamás se reiniciará de nuevo.

Si lo necesitas frecuentemente (después de cada borrado) no uses un autoincremento, usa un Integer y controlaló tú mismo.

Si necesitas reiniciarlo para entregar el programa al usuario final, usa este hilo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:02:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi