Hola a todos,
Primero una breve introducción: estoy trabajando con Windows XP y
Delphi 5 contra una BD
Firebird 1.5.
Lo que quiero hacer es copiar una tabla y todos sus registros a otra tabla dentro de dicha base de datos. (Es decir, tengo Tabla1 y quiero crear Tabla2 con la misma estructura que Tabla1 y los mismos registros)
Ya sé que una opción sería crear la tabla y hacer
Código SQL
[-]insert into Tabla1 select * from Tabla2
lo que pasa es que esto tengo que hacerlo para 30 tablas de mi BD, cada una con una estructura diferente, y antes tendría que crear las tablas destino.
Entonces navegando un poco por Internet, me encontré con el componente
TBatchMove y me llevé una grata sorpresa! porque hace exactamente lo que quiero cuando se usa el modo
batcopy: "
Create the destination table based on the structure of the source table. If the destination already exists, the operation will delete it, and replace it with the new copy of the source"
Pero la alegría me duró poco, porque no soy capaz de hacer que funcione . Lo que hago es lo siguiente: Defino los dos componentes TTable Origen y Destino y un componente TBatchMove (BM_Traspaso), y el código que utilizo es:
Código Delphi
[-]Bm_Traspaso.Destination:=Destino;
BM_Traspaso.Source:=Origen;
BM_Traspaso.Mode := batCopy;
BM_Traspaso.Execute;
Al ejecutar dicho código me da el error de que "La tabla no existe". Cuando se supone que con el modo batCopy, precisamente al no existir la tabla, la crea... no sé si se me está pasando algo en la configuración del TBatchMove...
Cuando en el código anterior cambio la propiedad Mode, a batAppend, funciona perfectamente.
Muchas gracias de antemano!!