FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Limpiar una base de datos
firebird 2.0 y delphi 7
Como puedo limpiar con un boton una base de datos: la cual contiene tablas con sus llaves foraneas y generadores no se si se puede recorrer tablas (teniendo pendiente q hay fk) y generadores dejarlos en cero.
__________________
Enseñar es la virtud de un sabio. |
#2
|
||||
|
||||
Si tenes las estructuras de las trablas podes hacer un Drop table una por una (con jerarquia da abajo asía arriba ) y despues crear las tablas nuevamenta
o sino, hacer un Delete de los campos tambien desde la tabla de jerarquia mas baja hasta la mas alta saludos |
#3
|
||||
|
||||
Si eliminas las tablas es más complicado, pues tendrás que tener en cuenta que unas tablas puedan depender de otras, o los disparadores dependan de una o más tablas. Sería un solo enrollo y cada caso es único pues depende de la estructura en si de la base de datos. Si te referías a que si había una instrucción especial para dejar la base de datos como nueva, algo así como "DROP TABLES..." pues no existe en Firebird. No es común eso hacer algo así sobre la DB.
Creo que lo más que te conviene es eliminar todos los registros de las tablas y poner los generadores a 0. De hecho pienso que eso es lo que quieres. Para hacer eso, simplemente ejecuta un "delete from <tabla>" en cada una de las tablas de tu base de datos, empezando por las que dependan de llaves foráneas. Para reiniciar los generadores, bastará con un: "SET GENERATOR <nombre_del_generador> TO 0;". Saludos, Chris |
#4
|
||||
|
||||
También puedes:
De todas formas esto no es nada habitual, puede que no se tenga permisos, que no se sepa en qué servidor esté alojada, etc. |
#5
|
||||
|
||||
Ojo no se si me hice entender
no es borrar fisicamente tablas si no borrar registro con delete from y por eso pregunto no se si hay algun codigo para recorrer tablas depronto en un ciclo o algo asi.
__________________
Enseñar es la virtud de un sabio. |
#6
|
||||
|
||||
Cita:
Por otra parte, creo que ingabraham busca cómo acceder a la metadata para tener un listado de todas las tablas de la base y así poder ciclar sobre ellas. // Saludos |
#7
|
||||
|
||||
No se firebird pero algunos Motores soporta TRUNCATE TABLE (nombre de Tabla) Que suele ser un poco mas rapido que el Delete from ..
La verdad que no recuerdo bien la diferencia pero, una que si recuerdo es que el Truncate no se guarda en el LOG de transaccion yo recuerdo haberla usado ya que es mas rapido que el Delete, cuando tenes muchos datos el Delete puede tardar.. un buen Rato. Truncate no soporta WHERE o condiciones de filtrado, hasta donde recuerdo, todo puede fallar. Creo que esta te podria servir. saludos |
#8
|
||||
|
||||
Cita:
Como dato extra, la validación de las claves foráneas se manejan en disparadores internos, que creo puedes deshabilitarlos. Una vez deshabilitados ya puedes dejar de preocuparte por las llaves foráneas. Sin embargo, considero que es más práctico y fácil cuidar las llaves foráneas que intentar averiguar cuáles son los nombre de cada uno de estos disparadores especiales. Saludos, Chris |
#9
|
||||
|
||||
Estoy con Casimiro en que es mucho más fácil extraer toda la metadata (con ibexpert free por ejemplo) y después ejecutarla para crear una nueva.
El resultado es el mismo, pero evitando toda la parafernalia que pintas: - desactivar triggers - dependencias entre tablas - reiniciar generadores - activar triggers ... y eso teniendo suerte, porque en cuanto tengas una referencia cíclica, estoy seguro tendrás más trabajo.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insertar Datos a un campo de la base de datos desde un DBEdit | saltamirano | Varios | 11 | 12-12-2007 17:29:35 |
Crear base de datos y cargar datos desde delphi | Albano | MySQL | 4 | 17-05-2007 20:01:18 |
Herramienta case para diccionario de datos de base de datos firebird | mcalmanovici | Firebird e Interbase | 1 | 11-02-2007 15:17:37 |
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas | adaypr | C++ Builder | 1 | 05-09-2006 11:56:33 |
Reto Para Expertos En Base De Datos Y Tipos De Datos.... (blob) | frankmch | Conexión con bases de datos | 2 | 08-09-2003 19:44:52 |
|