RE:Añadir o eliminar campos en tiempo de ejecución
Hola de nuevo Gabriel, siguiendo lo expuesto en la anterior nota, 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. Parece como si estuviera trabajando un bucle sin fin.
Por si afecta para algo, he de comentar que la BDVieja diene 25 campos y dos de ellos son memo.
Quisiera saber como hacer el proceso de eliminación automático como he hecho para añadir.
Saludos cordiales.