Tech Tip!

UniVerse does not have a SYSTEM function to return the current spooler number. On other conversion projects we have written subroutines to execute SETPTR and capture the output. It is not a perfect solution because, unlike other platforms, UniVerse does not generate the spooler number when you do PRINTER ON; it generates it when you do the first actual PRINT statement.

This is what we do as well, far from ideal but we couldn't think of a better way.  Here is the subroutine that we use that does the job.

0001:       SUBROUTINE GET.SPOOLER.NUMBER.SUB(SPOOLER.NO,CHANNEL)
0002: * Purpose  : Return the current spooler number.
0003: * Note     : This needs to be run before the PRINTER CLOSE command or
0004: *          &nbs p; before the program returns to TCL
0005:       EQU SLASH TO '/'
0006:       EXECUTE "SETPTR ":CHANNEL CAPTURING OUTPUT
0007:       NO.OF.SLASH = DCOUNT(OUTPUT,SLASH)
0008:       SPOOLER.NO = FIELD(OUTPUT,SLASH,NO.OF.SLASH)
0009:       SPOOLER.NO = SPOOLER.NO[3,5]
0010:       IF NUM(SPOOLER.NO) AND SPOOLER.NO # "" THEN
0011:          SPOOLER.NO += 0
0012:       END ELSE
0013:          SPOOLER.NO = "ERROR"
0014:       END
0015: *
0016:       RETURN

comp.database.pick thread:

http://groups.google.com/group/comp.databases.pick/browse_thread/thread/5d92aff132640ce7/4db9006e3ff398bb?#4db9006e3ff398bb
 

menu
menu