The following proc will pause a retrieve every 'n' records, and ask the user whether to continue or stop. This provides the opportunity to interrupt a full table scan.
READCOUNT should be a component variable, it will be incremented each time a record is read.
READLIMIT is a value which may be hardcoded or provided from some other source.
The calling sequence is:
read if ($status = 0) call CHK_READ_COUNT(readcount,readlimit) endif
Here is the code for the proc itself:-
;----------------------------------------------------------------------- ; pause retrieve after a number of records ;----------------------------------------------------------------------- params numeric pio_read_count : INOUT numeric pi_read_limit : IN endparams pio_read_count = pio_read_count + 1 ; increment count if (pio_read_count%pi_read_limit = 0) ; divide by limit & test remainder $1 = pio_read_count askmess/question $text("%%$1 records have been read - do you wish to continue?") if ($status = 0) release/e ; drop remainder of hitlist return(-1) endif endif return(0) ;----------------------------------------------------------------------- ; Name: CHK_READ_COUNT ; ; Author: Tony Marston ; ; Date: 20-06-99 ; ; Current Version: 1.0.0 ; ; Description: Increment record count and pause after every ; N records, allowing the user either to stop ; at this point, or to continue. ; ; read_limit is obtained from the logicals section in the ASN file. ; ; Input Parameters: read_limit ; read_count ; ; Output Parameters: $status ; read_count ; ; Update History: ; Date Updated By Details ;
Tony Marston
6th June 2000
mailto:tony@tonymarston.net
mailto:TonyMarston@hotmail.com
http://www.tonymarston.net