Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa

Post Reply
MANOLO
Posts: 82
Joined: Sun Oct 09, 2005 8:49 pm
Location: Spain
Contact:

Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa

Post by MANOLO »

Hola a todos, estoy modificando una función para actualizar los ficheros desde una dbf con _ 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.

uso fw25, clipper53 y blink 6.0

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

No se ve ninguna línea en rojo...
regards, saludos

Antonio Linares
www.fivetechsoft.com
MANOLO
Posts: 82
Joined: Sun Oct 09, 2005 8:49 pm
Location: Spain
Contact:

Post by MANOLO »

me da el error en esta linea:



if (nSeleant)->(fieldget(fieldpos((nSeletrab)->(fieldname(nCont)))))=Nil



Gracias.
Manolo
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Manolo,

Que versión de Clipper usas ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
MANOLO
Posts: 82
Joined: Sun Oct 09, 2005 8:49 pm
Location: Spain
Contact:

Post by MANOLO »

hola antonio el clipper que utilizo es el

Clipper 53b rev. 338


Saludos
Post Reply