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.
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:
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.
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.