| 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) |
| Reader's Clinic - Functions and Subroutines |
| Argument passing - Subroutines and Functions - Mike Pope |
| 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 |
| Reader's Clinic - Fixing %Windows% Using Depend.Update |
| QTIPS - Updating Indexes |
| How Indexes Are Updated |
| REVMEDIA Revisted |
| Gas Bar |
| @ATTACK - @Rn.Counter |
| QTIPS - Replacing GAS.BAR routine during PERFORM "SELECT" |
| QTIPS - Inconsistent @Variable Behaviour |
| Networked %SK% |
| RTP Series - RTP25 |
| A RevTechie Replies - And Miscellaneous Jottings - Mike Pope - Revelation Technologies (UK) Ltd |
| QTIPS - Using @Upper.Case and @Lower.Case with Foreign Languages |
| @ATTACK - @Lower.Case |
| @ATTACK - @Upper.Case |
| Sorting out Collation Sequences by Mike Pope |
| Networked %SK% |
| Uncommon Knowledge - WC_DataFile_Next% |
| Uncommon Knowledge - WC_Src_Dict% |
| Uncommon Knowledge - WC_XREF_WINDOW% |
| 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% |
RevMedia FKB
| Document | V1I10A10 |
| Title | Networked %SK% |
| Keywords | NETWORK %SK% WINDOW_COMMON% WC_SRC_FILE% WC_SRC_DICT% LOCK UNLOCK SEQUENTIAL |
| Text | Recently 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) |
Page last modified: 30/01/03