TEXTILE COMPUTER SYSTEMS, INC

618 Bluff Trail, San Antonio, TX 78216
Telephone(210)491-0046, Fax(210)491-9054

  • SQR Interactive Debugger Manual:

  • COPYRIGHT/LICENSE/WARRANTY Information:

                          COPYRIGHT/LICENSE/WARRANTY
    
            This software and accompanying files are Products of TEXTILE COMPUTER
            SYSTEMS INC (USA).
    
            LICENSE AGREEMENT
    
            You should carefully read the following terms and conditions before
            using this software.     Your use of this software indicates your
            acceptance of this license agreement and warranty.
    
            You agree not to copy, modify, transmit or reverse engineer this
            software.   Also you agree not to use this software for any purpose
    	  or in any manner other than for which it is expressly provided.
    
            One single user version copy may either be used only by a single
            person who uses the software personally on one or more computers,
            or installed on a single workstation used nonsimultaneously by
            multiple people, but not both.
    
            One single network version may be used on one or more computers
            simultaneously installed on a single workstation.
    
            One multiple network version may be used on one or more computers
            simultaneously installed on more than a single workstation upto
            the number of networks specified in the multiple network version
            license.
    
    	You also agree to remove the demo software and the related documents
    	from all the computers immediately after 30 days from the date of
    	receipt of the demo software and return the demo software to TEXTILE
    	COMPUTER SYSTEMS INC (USA).
    
            GOVERNING LAW
    
            This agreement shall be governed by the laws of the State of Texas,
            USA.
    
            DISCLAIMER OF WARRANTY
    
            THIS SOFTWARE AND THE ACCOMPANYING FILES ARE SOLD "AS IS" AND WITH-
            OUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER
            WARRANTIES WHETHER EXPRESSED OR IMPLIED.   Because of the various
            hardware and software environments into which this software may be
            put, NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED.
    
            Good data processing procedure dictates that any software be thoro-
            ughly tested with non-critical data before relying on it.    The
            user must assume the entire risk of using this software.    ANY LI-
            ABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACE-
            MENT OR REFUND OF PURCHASE OR CURRENT MARKET PRICE WHICH EVER IS
            LOWER UPTO US$100.
    
            If you do not completely agree with the above "COPYRIGHT/LICENSE/
            WARRANTY" information, please return the software without installing
            it.
    
      
  • SQR Interactive Debugger Objectives:

    One of the main problem with SQR is that full source file cannot be viewed by the user when include files are used. Also SQR cannot generate a compiler listing, similar to the one generated by traditional program development tools like COBOL, FORTRAN, C, C++, BASIC etc. So the SQR Expander Software Objectives are to create a single expanded file by expanding the included files and to generate a compiler like listing with the following information:

    1. Listing of the source code in the expanded format with the line numbers in the expanded format and line numbers in the individual included file.
    2. Listing of the included files and the information of the folders, from which the SQR and the included files, were pulled. This list also highlights the included files that may not be needed and that are duplicated.
    3. Listing of the Procedure Flow from the beginning to end, including the parameters used in the Procedures.
    4. Listing of all Declared Procedures including the type, with Parameters and the place including line numbers and included files information, where they are declared.
    5. Listing of all variables and their types and the place, including line numbers and included files information, where they are used. It also gives warning messages when a global variable has an improper name in a global procedure or when a passed variable is not used in a local procedure.
    It will be lot easier to debug this expanded source, with the help of compiler listing, rather than the original source program without any compiler listing. In order to develop efficient programs include files are a must.

  • SQR Interactive Debugger Installation:

    
         To install the software the following 3 Install files are needed:
    
                    1. README.TXT
                    2. INSTXREF.EXE
                    3. INSSQRXF.SQT
    
         Following are the steps to install the software:
    
                    1. Note down the name of the folder where SQR Executeable
                       file is residing.    This information is needed when
                       installing the software. 
                    2. Close down all the currently running application software.
                    3. Move the above mentioned 3 Install files into an empty
                       folder.
                    4. Run MS-DOS by selecting "MS-DOS Prompt" under "Programs"
                       from "Start" button.
                    5. Change to the folder where the 3 Install files were
                       moved.
                    6. Using "EDIT" or "TYPE" command, read "README.TXT" file
                       to get the instructions to install the software.
                    7. At MS-DOS prompt type INSTXREF which will execute the
                       SQR Install program.
                    8. Follow the instructions provided by the SQR Install
                       Porgram.  (Use F1 to get help).    The actual Installation
                       of the Software may take about 25 - 35 minutes depending
                       on the speed of the processor and the SQR Tools' modules are 
    			 to be installed.
                       NOTE: Complete connectivity information should entered
                             in the SQR Installer.    Following are the examples
                             for different RDBMS systems:
    
                             Allbase:       Database.
                                            This is the name of the database to use.
                             DB2            Ssname/SQLid.
                                            This is the subsystem name and SQL
                                            authorization id to use.
                             Informix       Database.
                                            This is the name of the database to use
                             Ingres         Database[/STAR][/Username].
                                            This is the name of the database to use
                                            and an optional user name.
                             Oracle         [Username]/[Password[@Database]].
                                            This is the username and password for the
                                            database.    Optionally, you can can
                                            specify the connection string for the
                                            database (e.g. @B:ORASERVER).
                             Rdb            None
                             SQLBase        [Database]/[Username]/[Password].
                                            This is the name of the database to use,
                                            your user name and password for the
                                            database.
                             Sybase         Username/[Password].
                                            This is your username and password for
                                            the password for the database.
                             ODBC           DataSource/[Username]/[Password]
                                            This if the name of the ODBC's
                                            DataSource, your user name and password
                                            for the ODBC driver.
    
    			Please refer to SQR Manual to get more information regarding
                      connectivity.
    
            When the SQR Tools software is installed successfully, a successful message 
    will be displayed.    After quitting the installer program check for the following 
    files in the current folder where the 3 install files were moved:
    
    		1. XFDBG (sub directory)
                            Files under XFDBG sub directory:
                            A. DEB*010.SQT where * denotes the name of RDBMS
    			   		which could have any one of the following
    			   		values:
    					A = ALLBASE
    					D = DB2
    					I = INFORMIX
    					G = INGRES
    					O = ORACLE
    					R = RDB
    					Q = SQLBASE
    					S = SYBASE
                            B. DEBINCLN.SQC which is an include file required to run
                                  DEB*010.SQT
                            C. DEBINCLO.SQC which is an include file required to run
                                  DEB*010.SQT
                            D. READMED.TXT which gives instructions to run
                               		SQR Expander Program.
    				E. XFDBG.DAT which has default parameters to run
                               		SQR Expander Program.
    						The values in this file may have to be
    						changed to your needs.
    				F. XFSQR.LST which has the names of SQRs that have to
    						be expanded.    This file has to be maintained 
                                        on an on-going basis.
    
    		2. SQRM.DAT
    			This file contains the minimum sizes to be assigned
    			to various internal parameters before running the
    			installed SQTs.   This file could be used with 
    			-M flag before running the installed SQTs.  To get
    			more information about -M flag refer to your SQR manual.
    			Also the values	assigned to various internal parameters
    			in this file could be used as minimum values in your
    			existing -M file.
    
    		3. Also make sure that the following sub directories are created:
    			XFE
    			XFL
    			TEMP
    
            Restart the computer.
    
            If you have any questions in installing the SQR Tools Software or running them, 
    please contact the developer TCS INC via email tcscad@stic.net or info@tcssoft.com.
                       
       
  • How to use SQR Interactive Debugger?

            	Debugging an SQR using SQR Interactive Debugger Tool is a 2 step process.    
    	First a Debugger SQR file is created using SQR Interactive Debugger (DEB*010.SQT) 
    	program.    Then the Debugger SQR file is executed to interactively debug and create 
    	a trace file of the actual SQR.
    	
    		The SQR Interacive Debugger (DEB*010.SQT) program is an SQR Report file and
    	so could be executed only thorough SQR.     Since this is a Report file the
    	SQR flag option '-RT' should be used to run this program.      The SQR Interacvitve 
    	Debugger reads the  SQR Interacive Debugger Initialization file once, at the beginning
    	of the program.       The name of this initialization file is 'XFDBG.DAT'.
    	If this initialization file does not exist in the current folder when the SQR
    	was executed, then  a window as shown in Figure 1 would be presented to the 
    	user so that the name of the folder where the initialization file exists 
    	could be entered.     At this point the user either enter the name of the 
    	folder or enter 'Q' to quit the program.    If the initialization file does 
    	not exist in the folder entered by the user then the program would keep asking 
    	for the correct folder's name.
                ____________________________________________________________________
                |SQR Debugger Initialization File''s Folder Name; Q=Quit:          |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |__________________________________________________________________|  
    
                                              FIGURE 1
    
            	The initialization file contains vital information required by the
    	SQR Interactive Debugger program and should be updated before running the SQR 
    	Interactive Debugger program.     The SQR Interactive Debugger program reads the 
    	following information from the initialization file:
    
                    1. TABLE11:         The name of one of the tables used by the Interactive
                                        Debugger.  This name could be anything to suit the user's 
                                        stanadards.   Following are the structure details of 
                                        this table:
    						
                                             XFDF_SQRNAME 		CHAR		15
                                             XFDF_DATETIME 		CHAR		14
    
                                             PRIMARY KEY:		XFDF_SQRNAME
    
    
                    2. TABLE12:         The name of one of the tables used by the Interactive   
                                        Debugger.  This name could be anything to suit the user's 
                                        stanadards.   Following are the structure details of 
                                        this table:
    
                                             XFDF_SQRNAME             CHAR		15
                                             XFDF_COUNT               NUMBER	6
                                             XFDF_SRCLINE             CHAR		254
                                             XFDF_CANBREAK            CHAR		1
                                             XFDF_YESBREAK            CHAR		1
    
                                             PRIMARY KEY:		XFDF_SQRNAME, XFDF_COUNT
    
                    3. TABLE13:         The name of one of the tables used by the Interactive 
                                        Debugger.  This name could be anything to suit the user's 
                                        stanadards.   Following are the structure details of 
                                        this table:
    	
                                             XFDF_SQRNAME             CHAR		15
                                             XFDF_COUNT 			NUMBER	6
                                             XFDF_PROCSEQ             NUMBER	6
                                             XFDF_PROCNAME 		CHAR		254
                                             XFDF_PARMNAME 		CHAR		254
                                             XFDF_LOCALSTRVAR 		NUMBER	3
                                             XFDF_LOCALNUMVAR 		NUMBER	3
                                             XFDF_LOCALSTRFLAGS 	CHAR		254
                                             XFDF_LOCALNUMFLAGS       CHAR		254
    
                                             PRIMARY KEY:		XFDF_SQRNAME, XFDF_COUNT
    
                    4. TABLE14:         The name of one of the tables used by the Interactive
                                        Debugger.  This name could be anything to suit the user's 
                                        stanadards.   Following are the structure details of 
                                        this table:
    
                                             XFDF_SQRNAME 		CHAR		15
                                             XFDF_COUNT 			NUMBER	6
                                             XFDF_DATATYPE 		CHAR		1
                                             XFDF_VARSEQ              NUMBER	6
                                             XFDF_VARTYPE 		CHAR		1
                                             XFDF_VARNAME 		CHAR		254
                                             XFDF_OLDSTRVALUE 		CHAR		254
                                             XFDF_NEWSTRVALUE 		CHAR		254
                                             XFDF_TGTSTRVALUE 		CHAR		254
                                             XFDF_TGTSET 		CHAR		1
    
                                             PRIMARY KEY:		XFDF_SQRNAME, XFDF_COUNT,
                                                                XFDF_DATATYPE, XFDF_VARSEQ		
    
                    5. CREATETABLE:     When the value for this flag to set to 'Y' then the 
                                        needed tables for the SQR Debugger will be created.   
                                        After creating the tables it could be set to 'N', so 
                                        that the tabels will not be created again.     Also if 
                                        it is desired to create the tables outside this SQR then 
                                        they could be created and this flag could be set to 'N', 
                                        before running this SQR. 
    
                    6. INPUTFOLDER:     The names of the SQRs for which the Debugger SQRs are to 
                                        be created are entered into a file called 'XFSQR.LST'.  
                                        This file could exist in any folder and the name of the 
                                        folder in which this file exists is entered here.
    
                    7. SQRFOLDER:       These are the folders, from which the SQR main source 
                                        file could be pulled from.    The order of search 
                                        for the SQR main source file are the order in which 
                                        the SQRFOLDERs are entered in the  initialization file.   
                                        The SQR Expander would look first in the first SQRFOLDER,
                                        then the next SQRFOLDER  and so on.
    
                    8. INCLFOLDER:      These are the folders, from which the included files 
                                        could be pulled from.    The order of search for the 
                                        included files are the order in which the INCLFOLDERs 
                                        are entered in the initialization file.   The Interactive 
                                        Debugger would look first in the first INCLFOLDER, then
                                        the next INCLFOLDER and so on.
    
                    9. XFEFOLDER:       This is the name of the folder in which the expanded SQR 
                                        files would be saved.   An expanded file is created for 
                                        each selected SQR.     The name of the expanded file is 
                                        primary name of the SQR file plus '.XFE'.
    
                   10. XFLFOLDER:       This is the name of the folder in which the list files 
                                        would be saved.   A list file is created for each 
                                        selected SQR.    The name of the list file is primary 
                                        name of the SQR file plus '.XFL'.
    
                   11. TEMPFOLDER:      This is the name of the folder in which the temporary 
                                        files would be saved.
    
                   12. XFDFOLDER :      This is the name of the folder in which the Debugger SQR
                                        would be saved.   A Debugger SQR is created for each 
                                        selected SQR.    The name of the Debugger SQR is primary 
                                        name of the SQR file plus '.XFD'.
    
                   13. XFTFOLDER :      This is the name of the folder in which the Debugger Trace 
                                        files would be saved.   When any Debugger SQR, which are 
                                        saved in XFDFOLDER by DEB*010.SQT, is executed a Debugger 
                                        Trace file will be created in this folder.   The name of 
                                        the Debugger Trace file is primary name of the SQR file 
                                        plus '.XFT'.
    
                   14. TRACELOCAL:      When the value for this flag to set to 'Y' then the
                                        Local Variables will be traced, otherwise they will not
                                        be traced.      So when the the value for this flag to set 
                                        to 'N' then the Local Variables cannot be interactively
                                        viewed or modified and also the trace file will not have
                                        information about the Local Variables.     Sometimes when
                                        this flag is set to 'Y' then the Debugger SQR may not be
                                        able to be executed because of its size.    So while
                                        debugging big SQRs, it may be necessary to set this flag
                                        to 'N'.
    
                   15. CODEOPT:         When the value for this flag to set to 'Y' then the code in
                                        the created SQR Debugger will be optimized and will require
                                        less memory for execution, but will run slowly.     When the 
                                        value for this flag to set to 'N' then the code in the 
                                        created SQR Debugger will not be optimized and will require 
                                        more memory for execution but will run faster.  Sometimes 
                                        when this flag is set to 'N' then the Debugger SQR may not 
                                        be able to be executed because of its size.    So while
                                        debugging big SQRs, it may be necessary to set this flag
                                        to 'N'.
    
    
            Following is contents of a sample SQR Debugger initialization file:
    
    
                    TABLE11 = 'XFST_TABLE11'
                    TABLE12 = 'XFST_TABLE12'
                    TABLE13 = 'XFST_TABLE13'
                    TABLE14 = 'XFST_TABLE14'
                    CREATETABLE = 'Y'
                    SQRFOLDER = 'C:\SQR\PAYROLL\SOURCE\TEST\'
                    SQRFOLDER = 'C:\SQR\PAYROLL\SOURCE\STAGE\'
                    SQRFOLDER = 'C:\SQR\PAYROLL\SOURCE\PROD\'
                    INCLFOLDER = 'C:\INCLUDE\PAYROLL\SOURCE\TEST\'
                    INCLFOLDER = 'C:\INCLUDE\PAYROLL\SOURCE\STAGE\'
                    INCLFOLDER = 'C:\INCLUDE\PAYROLL\SOURCE\PROD\'
                    INPUTFOLDER = 'C:\INS\XFDBG\'
                    XFEFOLDER = 'C:\INS\XFE\'
                    XFLFOLDER = 'C:\INS\XFL\'
                    TEMPFOLDER = 'C:\INS\TEMP\'
                    XFTFOLDER = 'C:\INS\XFT\'
                    XFDFOLDER = 'C:\INS\XFD\'
                    TRACELOCAL = 'Y'
                    CODEOPT = 'Y'
    
    
    
            	The value for the variables in the initialization file are provided
    	within single quotes.    They can be changed by the user to suit their needs.     
    	For example the names for the SQRFOLDER could be anything, and so could be according 
    	to the standards of the individual user.
    
            	Following is contents of a sample 'XFSQR.LST' file, which for the
    	above example should reside inside the folder 'C:\INS\XFDBG\':
    
                    SQR011.SQR
                    LDTBLS.SQR
                    SQR085.SQR
                    SQR006.SQR
    
            	When the SQR Debugger (DEB*010.SQT) program is submitted for execution through
    	SQR, the initialization file would be read.
    
          	Once the needed information from the initialization file is read, a window as shown in 
    	Figure 2 would be presented to the user so that the user can select an option, if the 
    	flag for "CREATETABLE" is set to 'Y' and the needed tables already exist in the database.
    
                ____________________________________________________________________
                |Customer: My Comapny Name                                         |
                |Program: c:\ins\xfdbg\debo010.sqt                                 |
                |Name for Table TABLE11: XFST_TABLE11                              |
                |Name for Table TABLE12: XFST_TABLE12                              |
                |Name for Table TABLE13: XFST_TABLE13                              |
                |Name for Table TABLE14: XFST_TABLE14                              |
                |No. of SQR Search Folders: 3.00000                                |
                |SQR Folder  (SQRFOLDER)  1: C:\SQR\PAYROLL\SOURCE\TEST\           |
                |SQR Folder  (SQRFOLDER)  2: C:\SQR\PAYROLL\SOURCE\STAGE\          |
                |SQR Folder  (SQRFOLDER)  3: C:\SQR\PAYROLL\SOURCE\PROD\           |
                |Include Folder (INCLFOLDER) 1: C:\INCLUDE\PAYROLL\SOURCE\TEST\    |
                |Include Folder (INCLFOLDER) 2: C:\INCLUDE\PAYROLL\SOURCE\STAGE\   |
                |Include Folder (INCLFOLDER) 3: C:\INCLUDE\PAYROLL\SOURCE\PROD\    |
                |Input File Folder (INPUTFOLDER): C:\INS\XFSES\                    |
                |Debug File Folder (XFDFOLDER): C:\INS\XFD\                        |
                |Trace File Folder (XFTFOLDER): C:\INS\XFT\                        |
                |Expand File Folder (XFEFOLDER): C:\INS\XFE\                       |
                |List File Folder (XFLFOLDER): C:\INS\XFL\                         |
                |Do you really want to recreate the Tables (Y/N):                                                |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |__________________________________________________________________|  
    
                                              FIGURE 2
    
    		At this point the appropriate available options for the users are 'Y' , or
    	'N'.   The input could be in upper or lower case.  	If the user's option is 'Y' 
    	then the needed tables will be recreated.   If the user's option is 'N' then the
    	tables will not be recreated.    Then the execution of the program will continue.
    
          		Once the needed information from the initialization file is read, a window as 
    	shown in Figure 3 would be presented to the user so that the user can select an option, 
    	if the flag for "CREATETABLE" is set to 'N' and the needed tables do not exist in the 
    	database.
    
                ____________________________________________________________________
                |Customer: My Comapny Name                                         |
                |Program: c:\ins\xfdbg\debo010.sqt                                 |
                |Name for Table TABLE11: XFST_TABLE11                              |
                |Name for Table TABLE12: XFST_TABLE12                              |
                |Name for Table TABLE13: XFST_TABLE13                              |
                |Name for Table TABLE14: XFST_TABLE14                              |
                |No. of SQR Search Folders: 3.00000                                |
                |SQR Folder  (SQRFOLDER)  1: C:\SQR\PAYROLL\SOURCE\TEST\           |
                |SQR Folder  (SQRFOLDER)  2: C:\SQR\PAYROLL\SOURCE\STAGE\          |
                |SQR Folder  (SQRFOLDER)  3: C:\SQR\PAYROLL\SOURCE\PROD\           |
                |Include Folder (INCLFOLDER) 1: C:\INCLUDE\PAYROLL\SOURCE\TEST\    |
                |Include Folder (INCLFOLDER) 2: C:\INCLUDE\PAYROLL\SOURCE\STAGE\   |
                |Include Folder (INCLFOLDER) 3: C:\INCLUDE\PAYROLL\SOURCE\PROD\    |
                |Input File Folder (INPUTFOLDER): C:\INS\XFSES\                    |
                |Debug File Folder (XFDFOLDER): C:\INS\XFD\                        |
                |Trace File Folder (XFTFOLDER): C:\INS\XFT\                        |
                |Expand File Folder (XFEFOLDER): C:\INS\XFE\                       |
                |List File Folder (XFLFOLDER): C:\INS\XFL\                         |
                |Can the Tables be created (Y/N):                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |__________________________________________________________________|  
    
                                              FIGURE 3
    
    		At this point the appropriate available options for the users are 'Y' , or
    	'N'.   The input could be in upper or lower case.  	If the user's option is 'Y' 
    	then the needed tables will be created.   If the user's option is 'N' then the
    	tables will not be created the execution of the program will terminate.
    
          		Once the needed information from the initialization file is read and if the
    	needed tables existed, a window as shown in Figure 4 would be presented to the user 
    	so that the user can select an option.
    
                ____________________________________________________________________
                |Customer: My Comapny Name                                         |
                |Program: c:\ins\xfdbg\debo010.sqt                                 |
                |Name for Table TABLE11: XFST_TABLE11                              |
                |Name for Table TABLE12: XFST_TABLE12                              |
                |Name for Table TABLE13: XFST_TABLE13                              |
                |Name for Table TABLE14: XFST_TABLE14                              |
                |No. of SQR Search Folders: 3.00000                                |
                |SQR Folder  (SQRFOLDER)  1: C:\SQR\PAYROLL\SOURCE\TEST\           |
                |SQR Folder  (SQRFOLDER)  2: C:\SQR\PAYROLL\SOURCE\STAGE\          |
                |SQR Folder  (SQRFOLDER)  3: C:\SQR\PAYROLL\SOURCE\PROD\           |
                |Include Folder (INCLFOLDER) 1: C:\INCLUDE\PAYROLL\SOURCE\TEST\    |
                |Include Folder (INCLFOLDER) 2: C:\INCLUDE\PAYROLL\SOURCE\STAGE\   |
                |Include Folder (INCLFOLDER) 3: C:\INCLUDE\PAYROLL\SOURCE\PROD\    |
                |Input File Folder (INPUTFOLDER): C:\INS\XFSES\                    |
                |Debug File Folder (XFDFOLDER): C:\INS\XFD\                        |
                |Trace File Folder (XFTFOLDER): C:\INS\XFT\                        |
                |Expand File Folder (XFEFOLDER): C:\INS\XFE\                       |
                |List File Folder (XFLFOLDER): C:\INS\XFL\                         |
                |D=Debug; Q=Quit:                                                  |
                |                                                                  |
                |                                                                  |
                |                                                                  |
                |__________________________________________________________________|  
    
                                              FIGURE 4
    
    		At this point the appropriate available options for the users are 'D' , or
    	'Q'.   The input could be in upper or lower case.  	If the user's option is 'D'
    	then the SQRs that were listed in 'XFSQR.LST' in the Input Folder would be read one
    	after the other. If the user's option is 'Q' then  the window would be closed and the 
    	execution of SQR Expander would be stopped.
    
    		For the above example the main SQR files and the included files used in each 
    	SQR file are pulled from the following folders in the order they are listed:
    
    		'C:\SQR\PAYROLL\SOURCE\TEST\'
    		'C:\SQR\PAYROLL\SOURCE\STAGE\'
    		'C:\SQR\PAYROLL\SOURCE\PROD\'
    		'C:\INCLUDE\PAYROLL\SOURCE\TEST\'
    		'C:\INCLUDE\PAYROLL\SOURCE\STAGE\'
    		'C:\INCLUDE\PAYROLL\SOURCE\PROD\'
    
    		If the required file exists in a folder then the next folder in the list would 
    	not be searched, otherwise the search would continue.
    
    		After reading all the required files for each SQR an SQR Debugger file, an 
    	expanded file and a list file for each read SQR would be created.   
    
    		The Debugger SQR files (in the above example SQR011.XFD, LDTBLS.XFD,
    	SQR085.XFD and SQR006.XFD) would be saved in 'C:\INS\XFD\'.
    
    		The expanded SQR files (in the above example SQR011.XFE, LDTBLS.XFE,
    	SQR085.XFE and SQR006.XFE) would be saved in 'C:\INS\XFE\'.
    
    		The compiler list file would be saved in (in the above example SQR011.XFL, 
    	LDTBL.XFL, SQR085.XFL and  SQR006.XFL) 'C:\INS\XFL\'.
    
    		Once the initialization file is set up correctly, then only the contents of 
    	'XFSQR.LST' file has to be changed  on an on-going basis.
    
                To actually run the SQR in interactive debugging mode, SQR Debugger file saved in
    	XFDFOLDER (defined in the Initialization file) should be executed with a -DEBUG[xxx]
    	flag where xxx could be '*', '%' or '#'.    When '*' is used the SQR could be Inter-
    	actively debugged and also a trace file woule be created.     When '%' is used the SQR
    	could be Interactively debugged but a trace file would not be created.     When '#' is
    	is used the SQR could not be Interactively debugged but a trace file would be created.
    	If a XFTFOLDER (Trace file folder) is not defined in the debugger initialization file,
    	at the time of creating the Debugger SQR file, then a trace file will not be created,
    	even if the flag is set to create the trace file.
    
               When the Debugger SQR is executed in the Interactive debugging mode, the execution
    	of the program will stop at the first executable command and a window as shown in 
    	Figure 5 would be presented to the user.
    
                ___________________________________________________________________________________
                |                           SQR Debugger By TCS                                   |
                |                       Total Number of Lines: 1201                               |
                |                           Write Trace File: Y                                   |
                |                                                                                 |
                | %*   32 begin-report                       $_ADDR1                              |
                |  *   33       DO XFSC-SQR-EXECUTION('A_X   $_ADDR2                              |
                |  *   34       do Main                      $_AMOUNT_RECEI..                     |
                | %*   35       DO XFSC-SQR-EXECUTION('A_X   $_APPOINTMENT                        |
                |      36 end-report                         $_APPT_DATE_ST..                     |
                |      37                                    $_APTT_TIME                          |
                | %*   38 begin-procedure Main               $_CITY                               |
                |  *   39    Let $UserChoice = ''            $_COMM                               |
                |  *   40    while ($UserChoice <> 'Y')      $_COMMENTS                           |
                |  *   41              do Get-User-Input(    $_CUST_NUM                           |
                |  *   42          evaluate $UserChoice      $_DATE-RECEIVE..                     |
                |      43                    when='1'        $_DEPTNO                             |
                |  *   44                                    $_DESCRIPTION                        |
                |  *   45                             do  (C)$SQR-DATABASE     ODBC               |
                |  *   46                            do C (C)$_SQR-PLATFORM    WINDOWS-NT         |
                |                                                                                 |
                |Entering into Procedure BEGIN-REPRT                                              |
                |(Browse: P=Present I=Index M=LineNo R=Trace)                                     |
                |(Breaks: T=Toggle A=All C=Clear D=Default S=Step)                                |
                |(Variables G=Global Q=Quit):                                                     | 
                |_________________________________________________________________________________|  
    
                                              FIGURE 5
    
    		The source code of the SQR along with the signs '%' and '*' will be displayed
    	in this window.    The sign '*' denotes that the source line is a logical break point 
    	and the absence of the sign '*' denotes that the source line is not a logical break 
    	point.   Following are the logical break points:
    
    		Entry Point of any Procedure
    		Any Executable statement within any Procedure
    		Exit Point of any Procedure
    		
    		Any logical break point can be set to 'ON' or 'OFF' position.    The sign '%' 
    	denotes that the logical break point is set to 'ON' position and the absence of this 
    	sign denotes that the logical break point is set to 'OFF' position.    When any logical
    	break point is set to on position, the execution will stop at that point and a window 
    	similar to the one in Figure 5 will be presented to the user.    This window not only 
    	displays  the source code from the last executed point, but also displays the values of 
    	variables.   From this window by inputting proper commands can view and modify any of 
    	the global or local variable appropriate at the execution point, toggle break points, 
    	browse the source code from any source line, step through the execution, start or stop 
    	writing tracing information into a trace file or quit the execution of the SQR after 
    	executing a user exit procedure.
    
    		First time the status of default logical break points will be set 
    	to 'ON' position.   The default break points are the entry and exit points of all 
    	Procedures.
    
    		At this point the appropriate available options for the users are 'P', 'I', 'M',
    	'R', 'T', 'A', 'C', 'D', 'S', 'G' or 'Q'.   Also if the current procedure is a local
    	procedure an option 'L', which stands for Local, would also be displayed and be an
    	available option.    The input could be in upper or lower case.  	Following are 
    	the actions for each option:
    		
    		'P':	Since the user has the ability to browse through any part of the source 
    			code,  it will be hard to remember the last executed command.    This 
    			option would refresh the windown as shown in Figure 5 and display the 
    			source code starting from the last executed command.	
    		'I':	This option would bring up a window as shown in FIGURE 6 which displays
    			starting line numbers of each procedure.
    		'M':	This option along with a line number would bring up the window as shown 
    			in Figure 5, but the starting line number would be the entered line 
    			number.    This option without a line number would bring up the question
    			"Please input the line number to go to:", so that the line number to go 
    			to, could be entered by the user.
    		'R':	This option would turn the "Write Trace File" from 'Y' to 'N' or vice 
    			versa.   When "Write Trace File" is 'Y' the tracing information will be 
    			written to the trace file, otherwise it will not be written to the trace 
    			file.
    		'T':	This option would switch the status of current break point from 'ON' 
    			position to 'OFF' position and vice versa.     This option along with a 
    			line number would switch the status of the entered line number's break 
    			point from 'ON' position to 'OFF' position and vice versa, and the 
    			source code will be displayed from the entered line number.
    		'A':	This option would turn the status of all logical break points to 'ON' 
    			position.
    		'C':	This option would turn the status of all logical break points to 'OFF' 
    			position.
    		'D':	This option would turn the status of all defautl break points to 'ON' 
    			position.    The default break points are the entry and exit points of 
    			all Procedures.
    		'S':	This option would resume the execution of the program, but will stop at 
    			the next logical break point, even if that logican break point is to 
    			'OFF' position.
    		'G':	This option would bring up a window as shown in Figure 7, which will 
    			enable the user to view and modify Global variables.
    		'L':	This option would bring up a window as shown in Figure 8, which will 
    			enable the user to view and modify Local variables.    This option would 
    			be available only when the current break point is part of a local 
    			procedure.
    		'Q':	This option would bring the question "Do you want to end the program 
    			(Y/N):".   If the response to this question is 'Y', then the execution 
    			of the program  will end after executing a user exit procedure.     If 
    			the response to this question is 'N' or anything other than 'Y', then 
    			the window as shown in Figure 5 will be presented.
    
    
                ____________________________________________________________________
                |                           SQR Debugger By TCS                    |
                |                        Procedures By Line Number                 |
                |                      Total Number of Procedures: 60              |
                |                                                                  |
                |   1    32  BEGIN-REPORT                                          |
                |   2    38  MAIN                                                  |
                |   3    69  GET-USER-INPUT                                        |
                |   4    90  BEGIN-TABLE-TRAN                                      |
                |   5    94  COMMIT-TABLE-TRAN                                     |
                |   6   110  CREATE-ALL-TABLES                                     |
                |   7   124  LOAD-ALL-TABLES                                       |
                |   8   148  CREATE-TABLE01                                        |
                |   9   160  CREATE-TABLE02                                        |
                |  10   172  CREATE-TABLE03                                        |
                |  11   190  CREATE-TABLE04                                        |
                |  12   205  CREATE-TABLE05                                        |
                |  13   221  CREATE-TABLE06                                        |
                |  14   233  CREATE-TABLE07                                        |
                |  15   257  CREATE-TABLE08                                        |
                |                                                                  |
                |                                                                  |
                |(Procedure Line No.: P=Prev N:=Next; Q=Quit):                     |
                |                                                                  |
                |__________________________________________________________________|  
    
                                              FIGURE 6
    
    		The window as shown in Figure 6 displays all procedures by line numbers.    At
    	this point the available options to user are 'P', 'N' or 'Q'.    The input could be 
    	in upper or lower case.   Following are the actions for each option:
    
    		P:  This option would display the window as in shown in Figure 6 but the 
    		    previous page.
    		N:  This option would display the window as in shown in Figure 6 but the next
    		    page.   This is the default option which means that hitting the "ENTER" key
    		    will have the same effect.
    		Q:  This option would return back to the window as shown in Figure 5.
    	
    
                _________________________________________________________________________
                |                           SQR Debugger By TCS                         |
                |                Global Variables (String: 51 Numeric: 16)              |
                |                                                                       |
                |   Variable Name           Current Value           Modified Value      |
                |                                                                       |
                |   1 $_ADDR1                                                           |
                |   2 $_ADDR2                                                           |
                |   3 $_AMOUNT_RECEIVED                                                 |
                |   4 $_APPOINTMENT                                                     |
                |   5 $_APPT_DATE_STRING                                                |
                |   6 $_APPT_TIME                                                       |
                |   7 $_CITY                                                            |
                |   8 $_COMM                                                            |
                |   9 $_COMMENTS                                                        |
                |  10 $_CUST_NUM                                                        |
                |  11 $_DATE_RECEIVED_STRING                                            |
                |  12 $_DEPTNO                                                          |
                |  13 $_DESCRIPTION                                                     |
                |  14 $_DNAME                                                           |
                |  15 $_EMPNO                                                           |
                |                                                                       |
                |Any key to continue                                                    |
                | (A=Accept C=Cancel M=Modify P=Prev N=Next S=Search D=Display):        |
                |                                                                       |
                |_______________________________________________________________________|  
    
                                              FIGURE 7
    
    
    		A:  This option would close this window and return back to window as shown in 
    		    Figure 5 after accepting the modfied values for all the Global variables
    		    entered by the user. 
    		C:  This option would close this window and return back to window as shown in 
    		    Figure 5 after rejecting the modfied values for all the Global variables
    		    entered by the user. 
    		M:  This option would let the user to modify the value of the variable in the
    		    top of the list.     This option would bring up the question "Please Enter
    		    new value for XXXXX:", where "XXXXX" is the name of the variable for which
    		    the new value is requested for.   If a value is entered then the value of
    		    the variable will be displayed under the column "Modified Value".    The
    		    new values displayed under the column "Modified Value" to their respective
    		    variables displayed under the column "Variable Name" will be applied only
    		    when the option "A" (Accept) is entered.
    		P:  This option would display the window as in shown in Figure 7 but the 
    		    previous page.
    		N:  This option would display the window as in shown in Figure 7 but the next
    		    page.   This is the default option which means that hitting the "ENTER" key
    		    will have the same effect.
    		S:  This option would bring up the question "Enter Search String (Blank=Cancel):".
    		    In response to this questions, a search string could be entered or hit the
    		    "ENTER" key without entring any string.      If a search string is entered
    		    then a window as shown in Figure 7 will be presented but the first variable
    		    name in the list displayed would be part of the entered search string.    If
    		    "ENTER" key is hit, without entering any search string, then the window as
    		    shown in Figure 7 would be displayed, but starting with the same variable 
    		    name as before.
    		D:  This option would make the first variable in the list of variables displayed 
    		    in the window as shown in Figure 7, will be made as a displayable variable 
    		    in the window as shown in Figure 5.   Because of the limited space in the 
    		    window as shown in Figure 5, not all the variables could be displayed.   The 
    		    variables  displayed in this window are listed in the alphabetical order and 
    		    has the priority in the following order:
    
    				Any variable whose value has been modified in the last executed
    				statement.
    				Any variable whose value has been modified manually by the user,
    				after the execution of the last statement.
    				Any variable that has been set as a displayable variable set by 
    				the option "D" in the window as shown in Figure 7.
    		
    		    So using this option it is possible to view the values of certain variables
    		    along with the source code as shown in Figure 7.
    
                _________________________________________________________________________
                |                           SQR Debugger By TCS                         |
                |      Local Variables (String: 10 Numeric: 1) in XFSC-SQR-EXECUTION    |
                |                                                                       |
                |   Variable Name           Current Value           Modified Value      |
                |                                                                       |
                |   1 $WHERE                                                            |
                |   2 $WHICHSQR                                                         |
                |   3 $WHICHTABLE                                                       |
                |   4 $XFSC-SQRNAME                                                     |
                |   5 $XFSC-USERNAME                                                    |
                |   6 $XFSCSQLERRORMSG                                                  |
                |   7 $XFSC-DATE                                                        |
                |   8 $XFSC-DATETIME                                                    |
                |   9 $XFSC-SHORTDATETIME                                               |
                |  10 $XFSC-TIME                                                        |
                |  11 #WHICHINSTANCE                                                    |
                |                                                                       |
                |                                                                       |
                |                                                                       |
                |                                                                       |
                |                                                                       |
                |Any key to continue                                                    |
                | (A=Accept C=Cancel M=Modify P=Prev N=Next S=Search D=Display):        |
                |                                                                       |
                |_______________________________________________________________________|  
    
                                              FIGURE 8
    
    		A:  This option would close this window and return back to window as shown in 
    		    Figure 5 after accepting the modfied values for all the Local variables
    		    entered by the user. 
    		C:  This option would close this window and return back to window as shown in 
    		    Figure 5 after rejecting the modfied values for all the Local variables
    		    entered by the user. 
    		M:  This option would let the user to modify the value of the variable in the
    		    top of the list.     This option would bring up the question "Please Enter
    		    new value for XXXXX:", where "XXXXX" is the name of the variable for which
    		    the new value is requested for.   If a value is entered then the value of
    		    the variable will be displayed under the column "Modified Value".    The
    		    new values displayed under the column "Modified Value" to their respective
    		    variables displayed under the column "Variable Name" will be applied only
    		    when the option "A" (Accept) is entered.
    		P:  This option would display the window as in shown in Figure 8 but the 
    		    previous page.
    		N:  This option would display the window as in shown in Figure 8 but the next
    		    page.   This is the default option which means that hitting the "ENTER" key
    		    will have the same effect.
    		S:  This option would bring up the question "Enter Search String (Blank=Cancel):".
    		    In response to this questions, a search string could be entered or hit the
    		    "ENTER" key without entring any string.      If a search string is entered
    		    then a window as shown in Figure 7 will be presented but the first variable
    		    name in the list displayed would be part of the entered search string.    If
    		    "ENTER" key is hit, without entering any search string, then the window as
    		    shown in Figure 7 would be displayed, but starting with the same variable 
    		    name as before.
    		D:  This option would make the first variable in the list of variables displayed 
    		    in the window as shown in Figure 8, will be made as a displayable variable 
    		    in the window as shown in Figure 5.   Because of the limited space in the 
    		    window as shown in Figure 5, not all the variables could be displayed.   The 
    		    variables  displayed in this window are listed in the alphabetical order and 
    		    has the priority in the following order:
    
    				Any variable whose value has been modified in the last executed
    				statement.
    				Any variable whose value has been modified manually by the user,
    				after the execution of the last statement.
    				Any variable that has been set as a displayable variable set by 
    				the option "D" in the window as shown in Figure 8.
    		
    		    So using this option it is possible to view the values of certain variables
    		    along with the source code as shown in Figure 8.
    
    
    	
    Home