replace all en Harbour require ser precedida de Flock() o ser exclusiva
26/03/2010
Las instrucciones que requieren un remplazo con el parametro all,
requiere que la base sea usada exclusive
en la siquiente rutina el sistema falla advirtiendo que el lock debe
ser dado con parameteros
use &BSAL alias BANCO_SAL
select BANCO_SAL
goto top
store 0 to i
do while i <= 12
store right("0" + ltrim(str(i)),2) to Mes_Aux
store "MES" + Mes_Aux + "_D" to Debito
store "MES" + Mes_Aux + "_C" to Credito
select BANCO_SAL
store rlock() to verror
replace all &Debito with 0.0 , &Credito with 0.0
unlock
store i + 1 to i
enddo
La solucion fue siplemente declarando en el use que el archivo es
exclusivo asi:
use &BSAL alias BANCO_SAL exclusive
select BANCO_SAL
lo demas siguio igual, tiene logica , pues el rlock() actua sobre
registro individuales y la rutina esta dicindo que se haga un cambio
sobre toda la base, me custiono entonces que es lo que hace FlagShip en
este proceso, si es que lo manenja mal o caso omiso de la instrucciones
rlock()/unlock en este contexto ? o el comando es bastante inteligente
y sabe que tiene que or asegurando registro a registro antes de cambiarlo
Las instrucciones que requieren un remplazo con el parametro all,
requiere que la base sea usada exclusive
en la siquiente rutina el sistema falla advirtiendo que el lock debe
ser dado con parameteros
use &BSAL alias BANCO_SAL
select BANCO_SAL
goto top
store 0 to i
do while i <= 12
store right("0" + ltrim(str(i)),2) to Mes_Aux
store "MES" + Mes_Aux + "_D" to Debito
store "MES" + Mes_Aux + "_C" to Credito
select BANCO_SAL
store rlock() to verror
replace all &Debito with 0.0 , &Credito with 0.0
unlock
store i + 1 to i
enddo
La solucion fue siplemente declarando en el use que el archivo es
exclusivo asi:
use &BSAL alias BANCO_SAL exclusive
select BANCO_SAL
lo demas siguio igual, tiene logica , pues el rlock() actua sobre
registro individuales y la rutina esta dicindo que se haga un cambio
sobre toda la base, me custiono entonces que es lo que hace FlagShip en
este proceso, si es que lo manenja mal o caso omiso de la instrucciones
rlock()/unlock en este contexto ? o el comando es bastante inteligente
y sabe que tiene que or asegurando registro a registro antes de cambiarlo
Comentarios
Publicar un comentario