Corruption detected en .cdx foxpro

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
edufloriv
Posts: 240
Joined: Thu Nov 08, 2012 3:42 am
DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
Location: PERU

Corruption detected en .cdx foxpro

Post by edufloriv »

Saludos amigos,

Aún no me animo a diseñar el módulo de cobranzas del nuevo sistema en la empresa en la que laboro, asi que siguen usando un módulo externo desarrollado por mi colega que trabaja conmigo, el tema es que mi colega solo programa en visual fox pro.

El esta jalando las facturas del nuevo sistema y las va registrando en una tabla de fox pro como canceladas. Mi problema ahora es que necesito saber cuales son las facturas que ya han sido canceladas (repito esto es temporal porque luego debo diseñar mi propio módulo de cobro de facturas) y escribí este pequeñe procesito para acceder a la tabla de fox pro y buscar en los registros si la factura ya fue cancelada:

Code: Select all

*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------

PROC VentSubeCreaDbf

LOCAL qVentX
LOCAL oVentX
LOCAL nVX
LOCAL aDbfCP := {{'FECHA'      ,'C', 8,0},;
                 {'HORA'       ,'C', 5,0},;
                 {'VENTA'      ,'N', 7,0},;
                 {'DOCUM'      ,'C',12,0},;
                 {'DIAS'       ,'N', 3,0},;
                 {'VENCE'      ,'C', 8,0},;
                 {'MONTO'      ,'N',12,2},;
                 {'ESTADO'     ,'C', 2,0},;
                 {'PAGADO'     ,'N', 1,0}}
LOCAL cInic  := DTOS( DATE()-120  )
LOCAL cPagos := '\\192.168.2.73\Comparte\Sistemf\Cheques\fache.dbf'
LOCAL iPagos := '\\192.168.2.73\Comparte\Sistemf\Cheques\fache.cdx'

   IF SELE('XINFO') > 0
      CLOSE XINFO
   ENDIF
   IF SELE('XPAGO') > 0
      CLOSE XPAGO
   ENDIF

   SELE 0
   USE &cPagos ALIAS XPAGO SHARED VIA 'DBFCDX' READONLY
[color=#BF4080]   SET INDEX TO &iPagos   // <------- AQUI TENGO EL PROBLEMAAAAAA !!!![/color]
   SET ORDER TO TAG fact_

   DBCREATE(cFactsDbf,aDbfCP)
   SELE 0
   USE &cFactsDbf ALIAS XINFO EXCLUSIVE VIA 'DBFCDX'

   qVentX  := ;
   "SELECT VC_FECHA,VC_HORA,VC_NUMVTA,VC_DOCNUM,VC_PGDIAS,VC_PGVENC,VC_TOTPRC,VC_ESTADO "+;
   "FROM VENTASC "+;
   "WHERE VC_ESTADO = 'OK' AND VC_CLICOD = '"+cQueClie+"' AND LEFT(VC_FECHA,6) >= '"+LEFT(cInic,6)+"' "+;
   "ORDER BY VC_NUMVTA DESC"

   oVentX := TOleAuto():New('ADODB.Recordset')
   oVentX:CursorLocation = adUseClient
   oVentX:Open( qVentX , oConexion , adOpenForwardOnly , adLockReadOnly )

   FOR nVX = 1 TO oVentX:RecordCount()
      nPagado := VentSubePagado( oVentX:Fields("VC_DOCNUM"):Value )
      APPEND BLANK
      XINFO->FECHA    := oVentX:Fields("VC_FECHA"):Value
      XINFO->HORA     := oVentX:Fields("VC_HORA"):Value
      XINFO->VENTA    := oVentX:Fields("VC_NUMVTA"):Value
      XINFO->DOCUM    := oVentX:Fields("VC_DOCNUM"):Value
      XINFO->DIAS     := oVentX:Fields("VC_PGDIAS"):Value
      XINFO->VENCE    := oVentX:Fields("VC_PGVENC"):Value
      XINFO->MONTO    := oVentX:Fields("VC_TOTPRC"):Value
      XINFO->ESTADO   := oVentX:Fields("VC_ESTADO"):Value
      XINFO->PAGADO   := nPagado
      oVentX:MoveNext()
   NEXT

   oVentX:Close()
   CLOSE XINFO
   CLOSE XPAGO

RETURN


*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------

FUNC VentSubePagado( cNumDoc )

LOCAL nPago := 0
LOCAL xSele := SELECT()
LOCAL xDoc  := LEFT(cNumDoc,3)+RIGHT(cNumDoc,7)

   SELE XPAGO
   DBSEEK( xDoc )
   IF FOUND()
      nPago := 1
   ENDIF
   SELE &xSele

RETURN( nPago )
Me arroja el siguiente error:

Date:16/05/14 Time: 18:36:55
Error DBFCDX/1012 Se detecto corrupcion: \\192.168.2.73\Comparte\Sistemf\Cheques\fache.cdx

Called from DBUSEAREA(0)
Called from VENTSUBECREADBF(56)
Called from ENVIARINFODEFACTURAS(18)
Called from (b)MAIN(216)
Called from _DOCONTROLEVENTPROCEDURE(5276)
Called from EVENTS(1391)
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(4935)
Called from MAIN(302)

Por supuesto el .cdx no lo he creado yo con nuestro querido Clipper/Harbour/Hmg ha sido creado por VFP. Intuyo que puede tratarse de una incompatibilidad del driver 'DBFCDX' ?

Agradeceré me tiendan una mano.

Mil gracias y cordiales saludos a todos.

Eduardo Flores Rivas


LIMA - PERU
EduardoLuis
Posts: 684
Joined: Tue Jun 04, 2013 6:33 pm
Location: Argentina

Re: Corruption detected en .cdx foxpro

Post by EduardoLuis »

Hola Edufloriv:

Prueba insertar al inicio antes del procedure, lo siguiente:

REQUEST DBFCDX
REQUEST DBFFPT

Espero te sirva.- No tengo demasiada experiencia con FoxPro.
jucar_es
Posts: 82
Joined: Thu Nov 13, 2008 11:12 pm

Re: Corruption detected en .cdx foxpro

Post by jucar_es »

Cordial saludo

Su colega le debe indicar si esta trabajando los indices con CDX es deciar al indexalos utiliza

Index on xx TAG xxx

En este caso no debe usar SET INDEX

Debe usar:
use PAGOS SHARED
ORDSETFOCUS("fac")


espero.. le sea util
Post Reply