i want to make a Sample where i "lock" multi Records
but my Sample does not work the Way i expect
i do use RLOCK() but do not UNLOCK so i thought it is still "lock" when "move" to other Record ...
but it seems to UNLOCK when move Pointer ... hm
what i´m doing wrong ... need Idea
Code: Select all
#include "HMG.CH"
#include "hbthread.ch"
REQUEST HB_GT_WIN_DEFAULT // Console
MEMVAR aList
PROCEDURE MAIN()
LOCAL nThread
LOCAL nMainThreadID := GetCurrentThreadID()
PUBLIC aList := {}
nThread := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @Look4Lock(), @aList )
AttachThreadInput( nMainThreadID, HMG_ThreadHBtoWinID( nThread ), .T. )
USE TIMEWORK SHARE
GOTO 10
RLOCK()
GetLockList(@aList)
INKEY(3)
GOTO 20
RLOCK()
GetLockList(@aList)
INKEY(3)
GOTO 99
RLOCK()
GetLockList(@aList)
INKEY(3)
hb_threadDetach(nThread)
RETURN
PROCEDURE GetLockList(aList)
aList := DBRLOCKLIST()
RETURN
PROCEDURE Look4Lock(aList)
LOCAL nSize
LOCAL nCount
LOCAL nThread
DO WHILE .T.
nSize := LEN( aList )
FOR nCount := 1 TO nSize
@ 0,0 SAY "locked Record Number"
@ nCount,0 SAY aList[ nCount ]
NEXT
hb_idleSleep( 0.5 )
if INKEY() = 27
EXIT
ENDIF
ENDDO
RETURN