FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa
Posts: 87
Joined: Sun Oct 09, 2005 08:49 PM
Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa
Posted: Fri Nov 04, 2005 12:08 PM

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.

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

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa
Posted: Sat Nov 05, 2005 07:28 AM

No se ve ninguna línea en rojo...

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 87
Joined: Sun Oct 09, 2005 08:49 PM
Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa
Posted: Sun Nov 06, 2005 10:21 AM

me da el error en esta linea:

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

Gracias.
Manolo

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa
Posted: Sun Nov 06, 2005 10:49 AM

Manolo,

Que versión de Clipper usas ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 87
Joined: Sun Oct 09, 2005 08:49 PM
Error DBFCDX/2037 Read error: Read Failed;In Function: GetDa
Posted: Mon Nov 07, 2005 08:28 AM

hola antonio el clipper que utilizo es el

Clipper 53b rev. 338

Saludos

Continue the discussion