Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== BATCH.INDEXING ====== ^Published By^Date^Version^Knowledge Level^Keywords^ |Revelation Technologies|14 NOV 1989|2.X|EXPERT|BATCH.INDEXING, | **DEPRECATED** The BATCH.INDEXING subroutine is obsolete and has been replaced by the [[guides:programming:programmers_reference_manual:rti_suppress_index_transactions|rti_suppress_index_transactions]] function. ==== BATCH.INDEXING ==== The BATCH.INDEXING subroutine reduces overhead for the Advanced Revelation indexing process, which is useful for batch processes. <code> BATCH.INDEXING(mode, filevar) </code> ==== Using BATCH.INDEXING ==== Normally, when the system writes a data record to an indexed file, it must also write a transaction record to the !INDEXING file. You can make this process somewhat more efficient by buffering the write process in memory using BATCH.INDEXING. BATCH.INDEXING either buffers a set amount of data (1,000 bytes) or buffers for a limited time (5 seconds), whichever occurs first, so you need not be concerned with overrunning memory space. ==== mode ==== An argument for mode turns BATCH.INDEXING on or off. A "1" here starts buffering and a "0" stops it, at which time the buffered data is written out to !INDEXING. ==== filevar ==== Filevar is the file variable of the indexed file. An argument is required when beginning the batch process. ==== Values returned ==== No values are returned. ==== Correct Use of BATCH.INDEXING ==== <code> /* The following code opens a file, turns on the batch indexing function, writes records to the opened file, then turns off the buffering process. The internal subroutines included here are dummies, which in practice would be replaced by proper record processing routines. */ DECLARE SUBROUTINE BATCH.INDEXING, FSMSG EQUATE start_buffer$ TO 1 EQUATE stop_buffer$ TO 0 file = "SAMPLE_CUSTOMERS" done = 0 OPEN file TO filevar ELSE FSMSG(); STOP PERFORM "SELECT ":file BATCH.INDEXING(start_buffer$, filevar) LOOP GOSUB build_records UNTIL done GOSUB write_records REPEAT BATCH.INDEXING(stop_buffer$, "") STOP ******************** Internal Subroutines ******************** build_records: READNEXT @ID ELSE done = 1; RETURN READ @RECORD FROM filevar, @ID ELSE FSMSG(); STOP IF @RECORD<<5>> = "Dallas" THEN phone = @RECORD<<3>> @RECORD<<3>> = "214 ":phone @ID = "X":@ID END RETURN write_records: WRITE @RECORD ON filevar, @ID ELSE FSMSG(); STOP RETURN </code> tips/revmedia/subs1.txt Last modified: 2025/01/03 15:35by bshumsky