Antonio please! problemas de bloqueo

Antonio please! problemas de bloqueo

Postby TecniSoftware » Tue Jun 26, 2007 6:10 pm

Antonio es urgentisimo que solucione este tema, se te ocurre que podrá ser????

Estoy usando xHarbour build 0.99.71 el que descargo habitualmente desde el cvs.

Estoy experimentando problemas de bloqueo en una red con XP SP2, lo extraño es que con esta función debería funcionar ok, devuelve .T. como que el registro fué bloqueado pero depues termina dando error dbfcdx/1022 "SE REQUIERE BLOQUEO", a alguien le ocurrió esto? revisé el foro pero no encontré información relevante acerca de este problema.

Antes que me preguntes, el problema ocurre en dos redes distintas con el mismo error asi que descarto problemas de placas, cables, etc. y obviamente cuando hago el REPLACE, viene un COMMIT - DBUNLOCK


La funcion de bloqueo es:

///////////////////////////////////////////////////////////////////////////////////

#Define MODE_FILE 1
#Define MODE_RECORD 2
#Define MODE_APPEND 3

Function Bloquea( cAlias, lAppend )
Local nMode
Local nCnt := 0

DEFAULT lAppend := .F.

DbSelectArea( cAlias )

If lAppend
nMode := MODE_APPEND
Else
nMode := MODE_RECORD
EndIf

Do While .T.

Do Case

Case nMode == MODE_APPEND
DbAppend()
If !NetErr()
Return .T.
Endif

Case nMode == MODE_RECORD
If RLock()
Return .T.
EndIf

EndCase

nCnt := nCnt + 1
SysWait(1)

If nCnt > 5
If !MsgYesNo( "No fué posible bloquear el registro " + StrZero( RecNo(), 8 ) + " del archivo " + cAlias + CRLF +;
"Reintenta?", "Atención!" )
Exit
Endif
Endif

EndDo

Return .F.

///////////////////////////////////////////////////////////////////////////////////


Necesito alguna ayudita urgente !!!!!!!!!!!!


Muchos saludos
Alejandro Cebolido, Buenos Aires, Argentina.
User avatar
TecniSoftware
 
Posts: 233
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Postby jacgsoft » Tue Jun 26, 2007 6:30 pm

Este problema te pasa cuando quieres modificar un registro o cuando quieres adicionar? pareciera que esto pasa cuando quieres adicionar

Att.


Jaime
User avatar
jacgsoft
 
Posts: 104
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

!!!!!!

Postby TecniSoftware » Tue Jun 26, 2007 6:36 pm

Me ocurre al querer modificar, inclusive usando la clase TDBF, me dice que el registro nnn está bloqueado cuando se perfectamente que nadie lo ha bloqueado por que tengo las dos pc una al lado de la otra....

Cada vez entiendo menos... Help!!!!

Saludos!
User avatar
TecniSoftware
 
Posts: 233
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Postby Patricio Avalos Aguirre » Tue Jun 26, 2007 7:54 pm

Hola tecnisoftware

a mi me esta pasando lo mismo, pero al parecer es la funcion
neterr()

http://fivetechsoft.com/forums/viewtopic.php?t=7316
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
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

no es el caso...

Postby TecniSoftware » Tue Jun 26, 2007 8:01 pm

A NetErr la llama para el caso de Append() y el problema lo tengo cuando quiero modificar.

Saludos!
User avatar
TecniSoftware
 
Posts: 233
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Postby jacgsoft » Tue Jun 26, 2007 9:37 pm

porque no haces algo simple en vez de llamar a la funcion BLOQUEA

usa de frente RLOCK()

RLOCK()
Replace campo with dato etc, etc, etc

UNLOCK
User avatar
jacgsoft
 
Posts: 104
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Postby Antonio Linares » Tue Jun 26, 2007 11:14 pm

Te sugiero dos ideas:

Descarga el build de xHarbour desde www.fivetechsoft.com/files/xharbour.exe y prueba con él

De continuar el error, construye un ejemplo en modo consola, sin FWH, y repórtalo en comp.lang.xharbour accesible desde google grupos
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Gracias Antonio

Postby TecniSoftware » Wed Jun 27, 2007 12:41 pm

Gracias Antonio, ya descargué ese xHarbour, recompilo todo y me pongo a probar.

Con respecto a esto:

jacgsoft wrote:porque no haces algo simple en vez de llamar a la funcion BLOQUEA

usa de frente RLOCK()

RLOCK()
Replace campo with dato etc, etc, etc

UNLOCK


No es correcto ya que si RLock() devuelve .F. la actualización no se realiza.

Gracias de todos modos.

Saludos!
Alejandro Cebolido.
User avatar
TecniSoftware
 
Posts: 233
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Postby Patricio Avalos Aguirre » Wed Jun 27, 2007 1:21 pm

para bloquear registro yo utilizo

Code: Select all  Expand view
   if dbRLock( )
      lRet := .T.
       exit
   endif


    DBRLOCK()
    Bloquea el registro que coincide con la identidad especificada o con
    la actual

    Sintaxis

    DBRLOCK(<xIdentidad>) --> lExito

    Argumentos

    <xIdentidad> es un valor £nico en la estructura del fichero de
    datos que identifica de forma un¡voca a uno de sus elementos (de base
    de datos). En ficheros con estructura de datos .dbf, <xIdentidad> es
    el n£mero de registro. En otros formatos de datos, <xIdentidad> es el
    valor de la clave principal.

    Devuelve

    DBRLOCK() devuelve un valor l¢gico que es verdadero (.T.) si no hay
    error en el bloqueo y falso (.F.) en caso contrario.
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
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

?

Postby TecniSoftware » Wed Jun 27, 2007 2:50 pm

Que diferencia existe entre RLock() y DBRlock() y/o en el caso que funcionen distinto, cual es mas conveniente de usar ??

Muchos saludos!
Alejandro Cebolido
Buenos Aires, Argentina.
User avatar
TecniSoftware
 
Posts: 233
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 89 guests