FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error DBFCDX/1025 Escritura no autorizada
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 03:52 AM
Error DBFCDX/1025 Escritura no autorizada :-)

Este es el error que estoy recibiendo donde indico en las siguientes líneas de código:
.......
IF !AbroDbf( .T., "DBFCDX", "BANCOS", "BANCOS", "i_ban")
      MsgInfo("No fué posible verificar cuenta")
      RETURN .F.
ENDIF
seek ncta
IF BANCOS->( Found() )
   DO WHILE .T.
      IF BANCOS->( RLock() )
aca----->REPLACE BANCOS->saldo WITH BANCOS->saldo + wmonto
         BANCOS->( DbUnlock() )
         EXIT
      ENDIF
   ENDDO
ENDIF
CierroDbf()

Lo curioso, como se puede ver es que el registro es bloqueado sin problemas y luego al intentar reemplazar produce un error de no poder acceder al registro bloqueado para escribir.

Intente buscar el error pero no se porque se produce.
Cualquier ayuda sera muy apreciada.

Gracias desde ya :-)
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 11:43 AM
IF !AbroDbf( .T., "DBFCDX", "BANCOS", "BANCOS", "i_ban") 
      MsgInfo("No fué posible verificar cuenta")
      RETURN .F. 
ENDIF
 
seek ncta
 
IF BANCOS->( Found() )
   WHILE( .T. )
      SYSREFRESH()
      IF BANCOS->( RLock() ) 
         REPLACE BANCOS->saldo WITH BANCOS->saldo + wmonto
         EXIT
      ELSE
          MsgInfo("No fué posible verificar cuenta")
      ENDIF 
   ENDDO
   BANCOS->( DbComittAll() )
   BANCOS->( DbUnlock() )
ELSE
   MsgInfo("No fué posible Abrir la cuenta")
ENDIF
 
CierroDbf()  //?????
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 12:00 PM

Gracias por tu respuesta Joao,

He probado con el código que me enviaste y sigue dándome el mismo error.

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 12:04 PM
jose_murugosa wrote:Error DBFCDX/1025 Escritura no autorizada :-)

Este es el error que estoy recibiendo donde indico en las siguientes líneas de código:
.......
IF !AbroDbf( .T., "DBFCDX", "BANCOS", "BANCOS", "i_ban")
      MsgInfo("No fué posible verificar cuenta")
      RETURN .F.
ENDIF
seek ncta
IF BANCOS->( Found() )
   DO WHILE .T.
      IF BANCOS->( RLock() )
aca----->REPLACE BANCOS->saldo WITH BANCOS->saldo + wmonto
         BANCOS->( DbUnlock() )
         EXIT
      ENDIF
   ENDDO
ENDIF
CierroDbf()

Lo curioso, como se puede ver es que el registro es bloqueado sin problemas y luego al intentar reemplazar produce un error de no poder acceder al registro bloqueado para escribir.

Intente buscar el error pero no se porque se produce.
Cualquier ayuda sera muy apreciada.

Gracias desde ya :-)


el seek ncta, en que área lo haces? no tiene el "Bancos->" delante

Si pones MSGINFO( BANCOS->( DBINFO( DBI_CANPUTREC ) ) ) justo antes del replace que muestra?

Antes del dBUnlock() es imprescindible el dBCommit() si quieres evitar corrupción de datos. Ya sé, es más lento, pero para mis programas eso no es negociable: dBcommit() antes del Unlock y 0 corrupción con ntx y con cdx.

Un saludo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 12:14 PM

saldo + wmonto -> los dos son numericos??

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 01:09 PM
Carlos, Joao:

Muchas gracias por sus respuestas, este es el código como lo estoy usando ahora y continúa el mismo error: :-)
   IF wmonto = 0
      RETURN .T.
   ENDIF
   warea = Select()
   IF !AbroDbf( .T., "DBFCDX", "BANCOS", "BANCOS", "i_ban")
      MsgInfo("No fué posible verificar cuenta")
      RETURN .F.
   ENDIF
   BANCOS->( DbSeek(ncta, .f.) )
   IF BANCOS->( Found() )
      DO WHILE .T.
         SysRefresh()
         IF BANCOS->( RLock() )
aca->    REPLACE BANCOS->saldo WITH BANCOS->saldo + wmonto
            BANCOS->( DbCommit() ) 
            BANCOS->( DbUnlock() )
            EXIT
         ENDIF
      ENDDO
   ENDIF
   BANCOS->( DbCloseArea() )


Saldo efectivamente es una variable numérica.

Gracias por vuestro interes y sugerencias que como veis he adoptado en el codigo. :-)
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 01:15 PM
Hola

Prueba con

bancos->( dbRLock() )
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 01:18 PM
Patricio Avalos Aguirre wrote:Hola

Prueba con

bancos->( dbRLock() )


Probado,

El mismo error en el mismo lugar......

Gracias por la sugerencia, sigo buscando....
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 01:34 PM

Muestranos:

AbroDbf()

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 01:34 PM

...
IF !AbroDbf( .T., "DBFCDX", "BANCOS", "BANCOS", "i_ban")
MsgInfo("No fué posible verificar cuenta")
RETURN .F.
ENDIF

Select Bancos

If !DbSeek(nCta)
MsgInfo("No existe la cuenta")
RETURN .F.
EndIf

If !RLock()
MsgInfo("No fué posible bloquear la cuenta")
RETURN .F.
EndIf

REPLACE BANCOS->saldo WITH BANCOS->saldo + wmonto

DbCommit()
DbUnLock()
CierroDbf()
...

Debe funcionar...........
Salu2

Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 06:23 PM
Willi Quintana wrote:...
IF !AbroDbf( .T., "DBFCDX", "BANCOS", "BANCOS", "i_ban")
MsgInfo("No fué posible verificar cuenta")
RETURN .F.
ENDIF

Select Bancos

If !DbSeek(nCta)
MsgInfo("No existe la cuenta")
RETURN .F.
EndIf

If !RLock()
MsgInfo("No fué posible bloquear la cuenta")
RETURN .F.
EndIf

REPLACE BANCOS->saldo WITH BANCOS->saldo + wmonto

DbCommit()
DbUnLock()
CierroDbf()
...

Debe funcionar...........
Salu2


Willy,

gracias por tu respuesta, probé de poner el código que sugieres, y me da nuevamente el mismo error. :-)

Cualquier guía adicional se recibe gratitud. :-)
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 205
Joined: Fri Oct 07, 2005 05:07 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 06:36 PM

El tamanho del campo 'SALDO' soporta la cantadid a grabar?... es decir verifica el tamanho del campo

Saludos/regards

RenOmaS



skype: americo.balboa
Posts: 330
Joined: Fri May 25, 2007 09:06 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 06:47 PM

Amigo:

Te propongo dos cosas:

  1. Borra el Archivo Indices y Generalo de nuevo.

2 Cambia esta Linea *** IF BANCOS->( Found() )
Por
IF BANCOS->( !eof() )
DO WHILE .T.
SysRefresh()
IF BANCOS->( RLock() )
aca-> REPLACE BANCOS->saldo WITH BANCOS->saldo + wmonto
BANCOS->( DbCommit() )
BANCOS->( DbUnlock() )
EXIT
ENDIF
ENDDO
ENDIF

Espero te sirva,

Saludos,
Antonio

Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 07:01 PM
COMO ESTÁ EL INDICE??

Hago asi,
    AEVAL(DIRECTORY( "IPOSTO.CDX"    ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 114
Joined: Fri Nov 24, 2006 09:03 PM
Error DBFCDX/1025 Escritura no autorizada
Posted: Mon Oct 29, 2007 08:30 PM

Ese error solo se da cuando el Archivo esta como solo Lectura,