Файл-серверный вариант.
Случается, что запись в файле оказывается запёртой.
Код: Выделить всё
IsHeldErr EQUATE(43) ! 'Record Is Already Held'
В незабвенном CPD 2.10 достаточно было вызвать форму,
изменить к.-л. поле в записи - и через 4 минуты
запись освобождалась.
В с5 это не проходит. Ругается Access Denied и выбрасывает.
Как говорил Вадим Эдуардович - все в сырцы!
Сходим.
Вот код из CPD2
например так
Код: Выделить всё
pointprh# = pointer(prh)
hold(prh,.10)
get(prh,pointprh#)
if errorcode() = 43
recover(120)
hold(prh)
get(prh,pointprh#)
recover()
!или вот так
set(confprix)
hold(confPRIX,.10)
next(confprix)
if errorcode() = 43
RECOVER(120)
set(confprix)
HOLD(confPRIX)
next(confprix)
RECOVER()
.
!В с55 команды RECOVER нет.
!Попытался сделать по науке
! LOOP
! HOLD(POST,2)
GET(POST,POS:OKP_KEY)
! stop(error())
! if errorcode() = IsHeldErr
! release(post)
! cycle
! elsif errorcode()
! stop(error()&' get post')
! break
! end
! end
C55EE
ШВС
--
Успехов
А.Козлов mailto:kozlov@bsp.open.by
Написал: ClaList(2)