Problema con APPEND FROM y campos memo
Publicado por Antonio Belando (55 intervenciones) el 04/05/2007 20:56:25
En la rutina que se describe a continuación y que es para añadir un campo a una BD ya existente con dos campos memo y despues de realizar otras tareas vuelvo a dejar los campos que había, pero no funciona.
Depurando la rutina he podido observar que cuando hago el primer APPEND FROM BDvieja a la base temporal (Temp) que no se añaden los registros de los dos campos memo que tenía la BDVieja, ya que al entrar en esa utilidad con el Programa no aparecen los datos del registro del campo memo que se ve y además, se queda bloqueado el Programa.
Sin embargo, si veo esta base temporal con DBASEIII+ si puedo ver los campos memo.
Decir que en un principio la BDVieja se creó con DBASEIII+. No sé dónde está el problema, pero llevo trabajando con tres aplicaciones hechas por mí en Clipper un montón de años con bases de datos creadas en un principio con DBASEIII+ y después manejadas con Clipper y nunca he tenido un problema de este tipo. Lo que si es cierto que nunca antes había hecho un APPEND FROM incluyendo campos memo.
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
Si alguien me puede ayudar, se lo agradecería.
Saludos cordiales.
Depurando la rutina he podido observar que cuando hago el primer APPEND FROM BDvieja a la base temporal (Temp) que no se añaden los registros de los dos campos memo que tenía la BDVieja, ya que al entrar en esa utilidad con el Programa no aparecen los datos del registro del campo memo que se ve y además, se queda bloqueado el Programa.
Sin embargo, si veo esta base temporal con DBASEIII+ si puedo ver los campos memo.
Decir que en un principio la BDVieja se creó con DBASEIII+. No sé dónde está el problema, pero llevo trabajando con tres aplicaciones hechas por mí en Clipper un montón de años con bases de datos creadas en un principio con DBASEIII+ y después manejadas con Clipper y nunca he tenido un problema de este tipo. Lo que si es cierto que nunca antes había hecho un APPEND FROM incluyendo campos memo.
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
Si alguien me puede ayudar, se lo agradecería.
Saludos cordiales.
Valora esta pregunta


0