QTIPS - Menus Without an Action Bar
QTIPS - DOSTime
VERBatim - V11
@ATTACK - @Backgrnd.Time
@ATTACK - @Index.Time
QTIPS - Time-outs in Windows
Playing with Scan Codes
QTIPS - Compiling Protection Code
QTIPS - Invalid Code and Command
QTIPS - Code/Command Help
Compiling 64K on a Shoestring by Blaise Wrenn (LexStat Systems Ltd)
QUERY.SUB
QTIPS - Query Windows - Changing Colours
Readers Clinic - Quickly Coping with \
Reader's Clinic - Functions and Subroutines
Argument passing - Subroutines and Functions - Mike Pope
Utility Diskette # 4
Version 3 Technical Highlights - Creating New Accounts Programmatically
Version 3 Technical Highlights - Securing Accounts
Version 3 Technical Highlights - Deleting Accounts
Version 3 TCL Subroutines - Creating New Accounts
Version 3 TCL Subroutines - Deleting Accounts
Networked %SK%
QTIPS - @Date.Format
@ATTACK - @Date.Format
QTIPS - Short Cut Implicit Formatting
Utility Diskette # 4
Networked %SK%
Network Contention
Directory Exists on Novell
QTIPS - String Space Format Errors
QTIPS - Postscript Driver Problem
Prompt Help
Reader's Clinic - Scribe Replace Processes in Window
Defaults
QTIPS - Autofilling Default Values
REVMEDIA Revisted
@ATTACK - @CPU.Type
QTIPS - FOR/NEXT variables
Reader's Clinic - Fixing %Windows% Using Depend.Update
QTIPS - Updating Indexes
How Indexes Are Updated
REVMEDIA Revisted
RTP Series - RTP42
RTP Series - RTP51
Reader's Clinic - AREV Runtime
@ATTACK - @PDisk.On
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
AREV Comes to Czechoslovakia Les Palenik, Cosmotron Systems
Bugs and PCs - Xlate with Multipart Keys
Redefining Keys
Referential Integrity
@ATTACK - @Edit.Keys
@ATTACK - @Environ.Keys
@ATTACK - @Int.Const
@ATTACK - @Move.Keys
@ATTACK - @Priority.Int
@ATTACK - @Macro.Keys
@ATTACK - @Macro.Mode
Playing with Scan Codes
Uncommon Knowledge - WC_Unkeys%
Uncommon Knowledge - WC_Except_Keys%
Uncommon Knowledge - WC_Soft_Keys%
SecureUser
VERBatim - V86
Advanced Revelation Initialisation Sequence (Overview) by Mike Pope
Utility Diskette # 3 - Part II
Reader's Clinic - Slow Multivalued Screen Display
RTP Series - RTP26
Gas Bar
@ATTACK - @Rn.Counter
QTIPS - Replacing GAS.BAR routine during PERFORM "SELECT"
QTIPS - Inconsistent @Variable Behaviour
Utility Diskette # 4
Networked %SK%
RTP Series - RTP25
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
Prompt Help
VERBatim - V6
QTIPS - BASIC Options
The End of the Line - Mike Pope and Hal Wyman
@ATTACK - @Modal
Redisplaying Multi-Values
Uncommon Knowledge - WC_Browse_Next%
Uncommon Knowledge - WC_Reset%
Reader's Clinic - Related Windows
Uncommon Knowledge - WC_Amv_Action%
Uncommon Knowledge - WC_Valid%
QTIPS - Window Bug and Debugging Window Bug
REVMEDIA Revisted
Uncommon Knowledge - WC_Reset%
QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages
@ATTACK - @Lower.Case
@ATTACK - @Upper.Case
Sorting out Collation Sequences by Mike Pope
DOS Interfacing (Part II)
Reader's Clinic - Preventing Records Being Amended
How Indexes Are Updated
A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd
Caching in on the Frames Array - Mike Pope
Networked %SK%
Uncommon Knowledge - WC_DataFile_Next%
Uncommon Knowledge - WC_Src_Dict%
Uncommon Knowledge - WC_XREF_WINDOW%
How Indexes Are Updated
QTIPS - Unexpected/Unwanted Modification Of Record On Write
Catalyst
Uncommon Knowledge - WC_Reset%
Uncommon Knowledge - WC_Amv_Action%
Uncommon Knowledge - WC_Is%
Catalyst
@ATTACK - @Ans
QTIPS - Compiling Work around on runtimes
QTIPS - Potential Problem When Using @ANS
Networked %SK%
Catalyst
Reader's Clinic - Preventing Records Being Amended
Uncommon Knowledge - WC_DataFile_Next%
REVMEDIA Revisted
Uncommon Knowledge - WC_Src_File%
Networked %SK%
Version 2
RTP Series - RTP25
RTP Series - RTP37

RevMedia FKB

DocumentV1I10A10
TitleNetworked %SK%
KeywordsNETWORK
%SK%
WINDOW_COMMON%
WC_SRC_FILE%
WC_SRC_DICT%
LOCK
UNLOCK
SEQUENTIAL
TextRecently a subscriber called to complain about the action of %SK% on a
network Coincidentally at the same time Richard Guise of Consulting
Support Services Ltd submitted the following code which not only answers the
subscriber's query but expands on it

EXPENDABLE SUBROUTINE USKEY (TYPE)
***
*** Gets account sequential key in format nnn*tail
*** and avoids network LOCKING problems
***
*** Key prompt default should be set to text
*** (E G "New Record")
***
*** TYPE = 1 for Post Prompt to get next free seq
*** 2 for pre/post save to update counter
***
*** The standard AREV %SK% will not work WITH multipart keys If a
*** second user CALLS for %SK% before a previous %SK% has
*** been filed the second user will be given the same number
*** plus a "record locked" message
***
*** There are two solutions Firstly allocate new sequence
*** numbers automatically when the records are filed; in this case
*** it is impossible to display a key DURING editing
***
*** This routine uses a second method No number is allocated
*** until the %SK% is accepted since the "record locked"
*** problem could occur The number is allocated immediately
*** prior to saving when no user delay is possible Since another
*** user may already have locked the %SK% record but not
*** updated the %SK% counter this routine test locks
*** incrementing FROM %SK% until it finds a record it can lock
*** It then immediately unlocks the record so that the window
*** interpreter LOCKING can operate immediately thereafter
***
$INSERT WINDOW_COMMON%
***
TAIL = '*' : Field(@ACCOUNT ' ' 2)
IF TAIL = "*" THEN
CALL MSG("Window for divisional account" "T1" "" "")
WC_RESET% = 6
RETURN
END
SKID = %SK" : TAIL : "%"
ON TYPE GOTO L1 L2
***
L1:
BEGIN CASE
CASE IS = "="
L1A: READ SK FROM WC_SRC_DICT% SKID ELSE SKID = 1
CALL MSG ("Reset counter " : SKID "RC" SK "")
IF NUM(SK) ELSE GOTO L1A
WRITE SK ON WC_SRC_DICT% SKID
CALL CATALYST("K" "{F8}")
CASE NUM(IS)
@ID = WC_IS% : TAIL
CASE 1
READ @ANS FROM WC_SRC_DICT% SKID ELSE @ANS = 1
LOOP
RETRY = "" ; NKY = @ANS : TAIL
LOCK WC_SRC_FILE% NKY ELSE RETRY = 1 ; @ANS += 1
WHILE RETRY REPEAT
UNLOCK WC_SRC_FILE% NKY
@ID = NKY
END CASE
RETURN
***
L2:
LOOP
RETRY = ""
LOCK WC_SRC_DICT% SKID ELSE RETRY = 1
WHILE RETRY REPEAT
READ SK FROM WC_SRC_DICT% SKID ELSE SK = 0
NK = FIELD(@ID "*" 1)
IF NK >= SK THEN WRITE NK+1 ON WC_SRC_DICT% SKID
UNLOCK WC_SRC_DICT% SKID
RETURN


(Volume 1 Issue 10 Pages 10 11)
[revmedia/copyrigh.htm]

Page last modified: 30/01/03