Requiere Bloqueo

Post Reply
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Requiere Bloqueo

Post by leandro »

Buenos Dias para todos,

Como dice el encabezado tengo problemas al momento de actualizar _ en una DBF compartida de otra aplicación. El problema radica al momento de actualizar, ya que me lanza un error que dice: requiere bloqueo.

Si lo hago de esta manera no realiza _, ya que no se cumple la condición y no ingresa.

Code: Select all

IF dbRLock() 
  d_info->HPESTADO:=2
  d_info->HPFRANUM:=val(factur)
  d_info->HPTIPDOC:=tipodoc
ENDIF
dbUnlock()
 
Sin embargo si lo hago forzado

Code: Select all

dbRLock() //
d_info->HPESTADO:=2
d_info->HPFRANUM:=val(factur)
d_info->HPTIPDOC:=tipodoc
dbUnlock()
 
Pummm Error: "Requiere Bloqueo",alguien sabe en que puedo estar fallando?

Por otro lado cabe comentar que solo sucede en algunos computadores, en mi PC personal funciona de maravilla, pero en el equipo del cliente, nada :(

De antemano gracias

Función Completa

Code: Select all

*ACTUALIZAMOS EL ESTADO Y NUMERO DE LA FACTURA
FUNCTION actualizaEstado(placa,fecFac,factur,tipodoc)
//RUTAS DE LOS ARCHIVOS UTILIZADOS
Local ruta1 := "\bascula\dbf\info"
//ABRIMOS LA TABLA DE REGISTRO 
USE (ruta1) INDE (ruta1) ALIAS d_info NEW SHARED VIA 'DBFCDX'
LOCATE FOR d_info->HPEFECHAS=fecFac .AND. d_info->HPESTADO=1 .AND. d_info->HPEPLACAS=alltrim(placa) 
IF FOUND()
    IF dbRLock() //
        d_info->HPESTADO:=2
        d_info->HPFRANUM:=val(factur)
        d_info->HPTIPDOC:=tipodoc
    ENDIF
    dbUnlock()
ELSE
    MsgInfo("Placa No Encontrada","Error Datos")
    retorno:=.f.
ENDIF
d_info->(DBCloseArea())
return nil 
 
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Requiere Bloqueo

Post by Armando »

Leandro:

Y si te vas a pie?

Code: Select all

    IF (cAlias)->(RLOCK())
 
Yo lo uso así y sin problemas.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Requiere Bloqueo

Post by karinha »

Code: Select all

FUNCTION actualizaEstado(placa,fecFac,factur,tipodoc)

   //RUTAS DE LOS ARCHIVOS UTILIZADOS
   Local ruta1 := "\bascula\dbf\info"
   //ABRIMOS LA TABLA DE REGISTRO
   USE (ruta1) INDEX (ruta1) ALIAS d_info NEW SHARED // VIA 'DBFCDX' ponga en el menu principal


   LOCATE FOR d_info->HPEFECHAS=fecFac .AND. d_info->HPESTADO=1 .AND. d_info->HPEPLACAS=alltrim(placa)


 
   IF FOUND()

      RLOCK()

      d_info->HPESTADO:=2
      d_info->HPFRANUM:=val(factur)
      d_info->HPTIPDOC:=tipodoc

      COMMIT
      UNLOCK

   ELSE

       MsgInfo("Placa No Encontrada","Error Datos")

       retorno:=.f.

   ENDIF

   d_info->(DBCloseArea())

return nil
 
João Santos - São Paulo - Brasil
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Requiere Bloqueo

Post by leandro »

Gracias karinha y Armando :D

Voy a realizar pruebas y comento.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Requiere Bloqueo

Post by nageswaragunupudi »

Code: Select all

if d_info->( Found() )
   if d_info->( FW_FieldsPut( "HPESTADO,HPFRANUM,HPTIPDOC", ;
                { 2, Val( FACTUR ), tipodoc } ) )  == 0
      ? "Error writing"
   endif
else
  ? "not found"
endif
 
Regards

G. N. Rao.
Hyderabad, India
Post Reply