Clipper/FiveWin - Problema con APPEND FROM y campos memo

 
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con APPEND FROM y campos memo

Publicado por Antonio Belando (55 intervenciones) el 05/05/2007 08:53:42
Solucionado el problema. Faltaban las dós líneas señaladas con <---

LOCAL aEstrInicial:={},aEstrNueva:={}
USE SolOT NEW
aEstrInicial := SolOT->(DBSTRUCT())
aEstrNueva := SolOT->(DBSTRUCT())
AADD(aEstrNueva, { "FieldNew", "C", 40, 0 })
USE
DBCREATE("Temp", aEstrNueva)
USE Temp NEW
APPEND FROM SolOT
USE
ERASE SolOT.dbf
ERASE SolOT.dbt // <---
RENAME Temp.dbf TO SolOT.dbf
RENAME Temp.dbt TO SolOT.dbt // <---
....
....
//sigo con el programa y al terminar, he de dejar la BDVieja con los campos que tenía:
.....
.....
DBCREATE("Temp", aEstrInicial)
USE Temp NEW
APPEND FROM SolOT
USE
ERASE SolOT.dbf
ERASE SolOT.dbt
RENAME Temp.dbf TO SolOT.dbf
RENAME Temp.dbt TO SolOT.dbt
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar