Hola a todos, estoy modificando una función para actualizar los ficheros desde una dbf con los campos definidos, todo funciona perfecto, pero cuando llega a copiar un registro con un campo memo con datos me refleja el error del asunto, abajo dejo el código que refleja el error , gracias por ayudarme.
Static Function fitraspa(cfichtrab, aFichstru,ccamino )
local nSeletrab, nSeleant, lActual := .f., nCont, nSust, xValor,;
aSelect := {'AUX'}, CTEMP:="",ASUST:={},cdriver:=DBSetDriver(),oFtrab:="TMPTRAB",NSYS:=0,oftemp:="TMPINI"
IF File(Ccamino+"temptras.dbf")
FErase(Ccamino+"temptras.dbf")
FErase(ccamino+"temptras.fpt")
ENDIF
DBCreate(cCamino+"temptras.dbf",aFichstru)
sysrefresh()
DBUseArea(.T.,,ccamino+"temptras.dbf",oftrab,.F.,.f.)
IF Select(oftrab) <> 0
nseletrab:=select()
DBUseArea(.T.,,cCamino+cfichtrab,OFTEMP,.f.,.F.)
(OFTEMP)->(DBGOTOP())
nseleant:=select(OFTEMP)
While !(NSELEANT)->(eof())
oWnd:oMsgbar:cMsgdef:="Fichero "+cFichtrab+" Actualizando Registro.."+Str(RecNo(),9)+" de "+Str(LastRec(),9)
ownd:oMsgbar:paint()
NSYS++
IF NSYS = 100
Sysrefresh()
NSYS = 0
ENDIF
(nSeletrab)->(dbappend())
for nCont := 1 to (OFTEMP)->(FCount())
if (nSeleant)->(fieldget(fieldpos((nSeletrab)->(fieldname(nCont)))))=Nil
nSust := ascan(aSust,{|aVal| AllTrim(aVal[1])==AllTrim((nSeletrab)->(fieldname(nCont)))})
if nSust#0
if valtype(aSust[nSust,2])='B'
xValor := eval(aSust[nSust,2])
(nSeletrab)->(fieldput(nCont,xValor))
else
(nSeletrab)->(fieldput(nCont,aSust[nSust,2]))
endif
endif
else
(nSeletrab)->(fieldput(nCont,;
(nSeleant)->(fieldget(fieldpos((nSeletrab)->(fieldname(nCont)))))))
endif
next
(NSELEANT)->(dbskip())
enddo
lActual := .t.
(nSeleant)->(dbclosearea())
if file(Ccamino+cFichtrab+'.ANT')
ferase(Ccamino+cFichtrab+'.ANT')
endif
(nSeletrab)->(dbclosearea())
IF frename((Ccamino+cFichtrab+'.DBF'), (Ccamino+cFichtrab+'.ANT')) == -1
MSGALERT("Imposible renombrar fichero..."+CcAMINO+CFICHTRAB+".DBF")
RETURN .F.
ENDIF
IF FRename((Ccamino+"temptras.dbf"),(ccamino+cfichtrab+".dbf")) == -1
Msgalert("Imposible renombrar fichero... Temptras.dbf")
RETURN .F.
ENDIF
endif
(nSeletrab)->(dbclosearea())
Return lActual
y el error que me genera es el siguiente:
Error DBFCDX/2037 Read error: Read Failed;In Function: GetDataLen;On Line: 581
lo da en la linea que he marcado en rojo