Eliminar campos en tiempo de ejecución
Publicado por Antonio Belando (55 intervenciones) el 03/05/2007 12:03:53
Siguiendo lo expuesto en post anterior sobre añadir un campo en tiempo de ejecución a una Base de Datos en Clipper, he hecho alguna modificación para intentar volver al estado anterior, es decir eliminar el campo que hemos añadido:
LOCAL aEstruct , aEstruInicial
USE BDvieja NEW
aEstruInicial := BDVieja->(DBSTRUCT())
aEstruct := BDVieja->(DBSTRUCT())
AADD(aEstruct, { "FieldNew", "C", 40, 0 })
DBCREATE("Temp", aEstruct)
USE
USE Temp NEW
APPEND FROM BDvieja
USE
ERASE BDvieja.dbf
ERASE Temp.dbt
RENAME Temp.dbf TO BDvieja.dbf
....
....
//sigo con el programa y al terminar, he de dejar la BDVieja con los campos que tenía:
.....
.....
DBCREATE("Temp", aEstruInicial)
USE Temp NEW
APPEND FROM BDVieja
Haciendolo así, no funciona.
Por si afecta para algo, he de comentar que la BDVieja, contiene entre otros campos dos memo.
Quisiera saber como hacer el proceso de eliminación automático como he hecho para añadir.
Saludos cordiales.
LOCAL aEstruct , aEstruInicial
USE BDvieja NEW
aEstruInicial := BDVieja->(DBSTRUCT())
aEstruct := BDVieja->(DBSTRUCT())
AADD(aEstruct, { "FieldNew", "C", 40, 0 })
DBCREATE("Temp", aEstruct)
USE
USE Temp NEW
APPEND FROM BDvieja
USE
ERASE BDvieja.dbf
ERASE Temp.dbt
RENAME Temp.dbf TO BDvieja.dbf
....
....
//sigo con el programa y al terminar, he de dejar la BDVieja con los campos que tenía:
.....
.....
DBCREATE("Temp", aEstruInicial)
USE Temp NEW
APPEND FROM BDVieja
Haciendolo así, no funciona.
Por si afecta para algo, he de comentar que la BDVieja, contiene entre otros campos dos memo.
Quisiera saber como hacer el proceso de eliminación automático como he hecho para añadir.
Saludos cordiales.
Valora esta pregunta
0