[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index] [Date Index] [Thread Index]
[SQR-USERS Info] [SQRUG Home Page]

Changes in Versions



Hello SQR Users
I have noticed a lot of questions about what changes with certain versions
of SQR
I came across this the other day and thought I would post it...

The Release Notes are divided into the following sections:
   o  Changes in Release 4.0
   o  Changes in Release 4.0.2
   o  Changes in Release 4.1
   o  Changes in Release 4.2
   o  Changes in Release 4.3
   o  Changes in Release 4.3.1
   o  Changes in Release 4.3.2
   o  Changes in Release 4.3.2.1
   o  Changes in Release 4.3.2.2
   o  Changes in Release 4.3.3
   o  Changes in Release 4.3.4
   o  Changes in Release 5.1
   o  Changes in Release 5.2
   o  Year 2000 date handling
   o  Known problems
   o  Resolved Customer Reported Issues
   o  Using SQR DLLs on Windows NT
   o  Oracle Specific APIs on Windows NT
   o  Extending and Customizing SQR on Windows NT
   o  Implementing New User Functions on Windows NT
   o  Implementing New User Calls on Windows NT
   o  Customizing Console Input/Output on Windows NT
   o  SQRW.DLL
        -  Using SQRW.DLL from "C" or "C++" Programs
        -  Using SQRW.DLL from Visual Basic

It's a 75kb file provided by Brio and may be useful to some!




John McNall
TGT Solutions Inc.
Ontario Canada
(519)273-6214
============================================================================
Revision:  29-JUL-99
============================================================================

The Release Notes are divided into the following sections:
   o  Changes in Release 4.0
   o  Changes in Release 4.0.2
   o  Changes in Release 4.1
   o  Changes in Release 4.2
   o  Changes in Release 4.3
   o  Changes in Release 4.3.1
   o  Changes in Release 4.3.2
   o  Changes in Release 4.3.2.1
   o  Changes in Release 4.3.2.2
   o  Changes in Release 4.3.3
   o  Changes in Release 4.3.4
   o  Changes in Release 5.1
   o  Changes in Release 5.2
   o  Year 2000 date handling
   o  Known problems
   o  Resolved Customer Reported Issues
   o  Using SQR DLLs on Windows NT
   o  Oracle Specific APIs on Windows NT
   o  Extending and Customizing SQR on Windows NT
   o  Implementing New User Functions on Windows NT
   o  Implementing New User Calls on Windows NT
   o  Customizing Console Input/Output on Windows NT
   o  SQRW.DLL
        -  Using SQRW.DLL from "C" or "C++" Programs
        -  Using SQRW.DLL from Visual Basic


============================================================================

Changes in Release 4.0
----------------------

o The DATE-TIME command is no longer allowed within the body of a BEGIN-SELECT
   paragraph.  You can use the SQR variable $CURRENT-DATE which contains the
   timestamp when SQR started. You can also use the LET function DATENOW()
   which returns the current timestamp.

o SQR has new support for localization and internalization features.

o SQR now supports a new class of variables: DATE.  This variable class can
   support dates from 4713BC to 9999AD.  SQR provides a full range of functions
   to manipulate and manage this variable class.

o SQR now support three classes of numerical variables: FLOAT, INTEGER and
   DECIMAL.  The FLOAT class is the same as in previous releases.  The INTEGER
   class supports whole numbers ranging from -2147483648 to +2147483647.  The
   DECIMAL class supports numbers with up to 38 digits of precision with an
   exponent value ranging from -4096 to +4096.

o SQR now supports database types that are exact representations of a
   numerical value.  These columns are mapped to the SQR DECIMAL class.
   Previous releases mapped the columns to the SQR FLOAT class.

o The PRINT-CHART command now uses the same font for the title and sub-title
   in order to support extended ASCII characters (i.e. Swedish).

o SQR now trims trailing blanks from the Line-Printer output files. Use the
   new command line flag -XTB to preserve the blank characters.

o The PRINT-BAR-CODE command now supports the CHECKSUM for EXTENDED CODE93
   and CODE93 types.  The default action for all types is not to generate a
   checksum.  Previous releases always generated the checksum for EXTENDED
   CODE93 and CODE93 types.

o The SHOW and PRINT commands will always output a number when a numeric edit
   mask is applied to a numeric column/variable.  The exception to this rule is
   when the edit mask contains one of the following fields: "B", "NU", or "NA".

o SQR now supports the generation of HTML code by using the -PRINTER:HT
   command line flag.

o The BEGIN-SELECT paragraph now can be surrounded by an EVALUATE, WHILE, or
   IF command.

o The DECLARE-LAYOUT command now allows you to specify a Unit-Of-Measure
   suffix to some of the qualifiers.  Additionally, the PAPER-SIZE qualifier
   now supports mnemonics (e.g. A4).

o The PRINT command has a new WRAP parameter LINE-HEIGHT which specifies the
   number of lines to skip between each line of the wrapped text.

o The INPUT command has a new parameter BATCH-MODE which declares that if the
   command line has no more values, ignore the INPUT command.  If a status
   variable is specified it will be set to the value of '3'.

o SQR now supports the strong type casting of non-dynamic expressions and
   columns in a BEGIN-SELECT paragraph.  That is, the '&name=type' suffix which
   was only available for dynamic columns can now be applied to non-dynamic
   columns and expression.  SQR will produce an error if the user specified type
   does not match the type as defined by the database.  The valid types are
   CHAR, NUMBER, and DATE.

o The CREATE-ARRAY command now runs significantly faster and uses less memory
   than in previous releases.


Changes in Release 4.0.2
------------------------

o (Windows NT/95) The SPF Viewer module (SQRWV.EXE) is now a true 32-Bit
   executable.

o (ODBC) Now supported under Windows NT and Windows 95

o (Informix) Now supported under Windows NT, Windows 95, Sun/Solaris 2.5,
   IBM/AIX 4.1, and HP/HP-UX 9 & 10


Changes in Release 4.1
----------------------

o Added "Table of Contents" functionality.

o Added "Bursting" functionality for HTML report output generation.

o Added new LET function: ROMAN  This function returns the Roman numerical
  character string equivalent for a given number.

o Added new LET function: WRAPDEPTH  This function returns the number of lines
  the specified text will require when WRAPped.

Changes in Release 4.2
----------------------

o Added support for double-byte characters.  There are new modules with a
  'j' suffix (e.g. SQRJ, SQRTJ, SQRPJ, etc.) which can support double-byte
  characters.  These modules run slower than the corresponding single-byte
  version.  Set the environment variable ENCODING to one of the following
  values: ASCII, SJIS and JUEC.  The default value is ASCII.

o There are two new SQR reserved variables: $SQR-DBCS and $SQR-ENCODING.
  $SQR-DBCS will be set to "YES" when referenced from the double-byte enabled
  executables and set to "NO" otherwise.  $SQR-ENCODING is set to the value
  of the ENCODING environment variable.  These variables are also provided
  as substitution variables.

o SQR now supports two new environment variables (which may also be set in
  the SQR.INI file).  These variables are called SQR_DB_DATE_ONLY_FORMAT and
  SQR_DB_TIME_ONLY_FORMAT.  The current environment variable SQR_DB_DATE_FORMAT
  applies to database columns which contain both date and time elements,
  SQR_DB_DATE_ONLY_FORMAT applies to database columns which contain a date
  component only and SQR_DB_TIME_ONLY_FORMAT applies to database columns which
  contain a time component only.

Changes in Release 4.3
----------------------

o SQR now provides the ability to apply the &Column=Char syntax against DATE
  columns.  Prior to SQR v4.x DATE columns were retrieved as character strings.
  To activate this feature add "AllowDateAsChar=TRUE" in the [Default-Settings]
  section of your initialization file (SQR.INI).

o Support for Red Brick Warehouse (5.1.2) on HP/HP-UX, IBM/AIX, and Sun/Solaris
  platforms.

Changes in Release 4.3.1
------------------------

o There is a new SQR reserved variable: $SQR-HOSTNAME.  This will be set to
  the name of the machine that SQR is executing on.  This variable is also
  provided as a substitution variable.

o There are new entries in the [Default-Settings] section of the SQR.INI file:

  OutputFormFeedWithDashD = TRUE | FALSE

   When set to TRUE the -Dnn command line flag will output the Form-Feed
   character that denotes a page break.  The default value is FALSE.

  OutputTwoDigitYearWarningMsg = TRUE | FALSE

   When set to TRUE SQR will generate a warning message (sent to the error
   file) when a YY or RR date edit mask is encountered during a program run.
   The default value is TRUE.  This only effects SQR code that is processed.

  UseY2kCenturyAlgorithm = TRUE | FALSE

   When set to TRUE SQR will treat the YY date edit mask as though it is an
   RR date edit mask.  The default value is FALSE.  Please see the SQR
   Language Reference (page 213) for details on the RR date edit mask.

o Added support, on limited platforms, for Enhanced HTML.  This capability
  allows the customer to generate much better HTML from SQR reports than
  before.  To use this feature the new command line flag -PRINTER:EH should
  be used.  No changes to the SQR code are required.  There are additional
  flags and options:
  
   Command line flags:
   
   -EH_Scale:nn   -- Sets the scaling factor from 50 to 200
   -EH_Icons:dir  -- Specifies the directory where the HTML should look for
                     the referenced icons.
   -EH_CSV        -- Generate a {report}.csv file from the report data.
   -EH_CSV:file   -- Associate the CSV icon with the specified file.
   
   SQR.INI [Enhanced HTML] section:
   
   Language = English | French
                  Sets the language for the navigation bar.  The default
                  is English

   FullHTML = True | False
                  When set to True then HTML 3.2 is generated.  The default
                  is False.

Changes in Release 4.3.2
------------------------

o There are two new SQR reserved variables: #SQR-MAX-COLUMNS and #SQR-MAX-LINES
  which contain the maximum number of columns and lines for the current
  report.  When the USE-REPORT command is executed these variables are changed
  to reflect the layout currently in effect.

o The ODBC port of SQR now uses the "Extended Fetch" functionality to increase
  performance.  Consequently there is a new command line option (-Bnn) and a
  a new parameter to the BEGIN-SELECT command (-Bnn).  These options allow
  you to alter the number of database rows retrieved from the database at a 
  time.  The default value is 10.

Changes in Release 4.3.2.2
--------------------------

o SQR can now generate ADOBE PDF files through the use of the -PRINTER:PD
  command line flag.  The sample SQR.INI file now has a new section called
  [PDF Fonts] which provides the mapping between SQR fonts and ADOBE fonts.

o SQR is now available for SCO UnixWare 7.0.1 for Oracle 8.0.4, Informix
  7.23.UC1, and DB2 5.2.0.

o SQR is now available for Windows 95/98/NT for DB2 5.0.0.  SQR is no
  restricted to using ODBC to access the DB2 database from Windows.

o SQR is now available for Intel Red Hat Linux for Oracle 8.0.5, Informix
  7.24.UC5-1, and Sybase CT-LIB 10.0.4.

o There is a new entry in the [Default-Settings] section of the SQR.INI file:

  FixODBCAccuracy = TRUE | FALSE

   When set to TRUE SQR will correct floating point anomalies with FLOAT
   columns.  This situation appears to occur with Microsoft ODBC drivers
   (greater than 2.65.240).  The default is FALSE.

Changes in Release 4.3.3
------------------------

o For existing customers, SYBASE Open Client DB-LIB is once again supported.
  So as not to interfere with existing usage, the executable names are "sqrd",
  "sqrdt", "sqrdj", and "sqrdtj" for non-Windows platforms. For the Windows 
  platforms the executables names are "sqrwd", "sqrwdt", "sqrwdj", and 
  "sqrwdtj".

o SQR is now available for Intel Solaris platform for Oracle 8.0.5, Informix
  9.14.UC1 (SDK 2.01), and Sybase CT-LIB 10.0.2

o There is a new entry in the [Fonts] section of the SQR.INI file:

  CharacterSet = xxx
  
  Where xxx can be:
  
   DEFAULT  - Retain current SQR functionality.
   AUTO     - SQR will automatically sense the default character set of the
              Windows installation and use it when sending reports to the
              Windows Printer (-PRINTER:WP) or when viewing an SPF file.
              
   You can also explicitly specify the character set by one of the following
   keywords:
   
     ANSI ARABIC BALTIC CHINESEBIG5 EASTEUROPE GB2312 GREEK HANGUL HEBREW
     JOHAB MAC OEM RUSSIAN SHIFTJIS SYMBOL THAI TURKISH VIETNAMESE

  Please note that this functionality is limited to the Windows platform and
  has no effect anywhere else. Also, you must have the desired character sets
  installed on your system.
  
  
  o The DECLARE-TOC command has a new option: 'ENTRY = procedure'

  When this option is used, the specified procedure will be invoked to process
  each TOC entry. The following SQR reserved variables will be available:
  
    #SQR-TOC-LEVEL - Contains the level
    $SQR-TOC-TEXT  - Contains the text
    #SQR-TOC-PAGE  - Contains the page number

  The other procedures (BEFORE/AFTER TOC, BEFORE/AFTER PAGE) will be invoked
  at the proper time.

o A new command line flag, -PRINTER:EP, has been to create both Enhanced HTML
  and PDF output from a single SQR, SQRT, or SQRP program run. This new flag
  is only available on those platforms which support the -PRINTER:EH
  functionality.

o The following platforms now support the Enhanced HTML functionality:

  Siemens-Nixdorf Reliant Unix
  DEC Digital Unix
  Intel Solaris

o Added new command line flags for Enhanced HTML:

  -EH_PDF - Creates a PDF icon in the navigation bar. This is automatically
            set when -PRINTER:EP is specified.
  -EH_BQD - Creates a BQD icon in the navigation bar in addition to creating
            a .BQD file.

o Added new entries in the [Enhanced HTML] section of the SQR.INI file:

  BROWSER = ALL | IE | NETSCAPE
  
    ALL       -- The generated HTML will auto-sense which browser is being
                 used and invoke the proper HTML file.
    
    IE        -- The generated HTML is designed for Internet Explorer.

    NETSCAPE  -- The generated HTML is designed for Netscape.


o Added additional languages (German, Spanish, Portuguese) to the LANGUAGE
  entry in the [Enhanced HTML] section of the SQR.INI file.

Changes in Release 4.3.4
------------------------

o The new default value for the [Enhanced HTML] BROWSER setting is now
  "ALL".

Changes in Release 5.1
----------------------

o SQR now supports the following character set encodings: EBCDIK290,
  EBCDIK1027, UTF-8, and UCS-2 (database only) along with Shift-JIS, JEUC,
  ASCII and EBCDIC.

o All character encodings are now supported in one set of executables. The 'J'
  versions of the modules are no longer supplied.

o Different character encodings may be specified for the input file(s), the
  output file(s), the report file(s), and the database. The different encodings
  are specified by the INI Environment section keys ENCODING-FILE-INPUT,
  ENCODING-FILE-OUTPUT, ENCODING-REPORT-OUTPUT, and ENCODING-DATABASE. Even
  though different encodings may be specified, they must be logical subsets or
  supersets of one another (i.e. ASCII and SJIS or EBCDIC and EBCDIK1027 may be
  mixed but not EBCDIC and ASCII or UTF-8 and SJIS.) In SQR 5.1, UTF-8 is
  considered to be a logical subset of UCS-2.

o (ODBC) SQR now supports the NCHAR (National Character) column type in Microsoft
  SQL Server 7.0 and Oracle 8.1.x.

o (ORACLE) SQR now supports the NCHAR (National Character) column type in
  Oracle 8.1.x.

o (ODBC) SQR for ODBC requires the SQL Server ODBC driver to be version 3.70.x
  or higher.

o (ORACLE) SQR 5.1 now communicates with Oracle using either the Oracle 7 OCI
  or the Oracle 8 OCI. On Unix variants, all versions of SQR 5.1 are shipped
  linked with Oracle 7 OCI. 'sqrmake' may be run to relink SQR to have it use
  the Oracle 8 OCI. (Note: SQR must be relinked with the Oracle 8 OCI for SQR
  to use NCHAR column types.)
    On Windows NT, SQR dynamically selects whether to use Oracle 7 OCI or
  Oracle 8 OCI depending on which OCI is supported by the installed OCI.DLL.

o Added new command line flags for Enhanced HTML:

  -EH_FULLHTML - Same functionality as SQR.INI [Enhanced HTML] setting
  -EH_LANGUAGE - Same functionality as SQR.INI [Enhanced HTML] setting
  -EH_BROWSER  - Same functionality as SQR.INI [Enhanced HTML] setting
  -EH_CSVONLY  - Create a CSV file but no accompying HTML files
  -EH_APPLETS  - Specifies the directory for Enhanced HTML applets

o The location of the JRE has moved from its previous location in SQRDIR to
  two directories above that point. Those users who move an installed version of SQR
  have in the past copied only the SQRDIR contents; this will no longer allow the 
  product to operate properly for -printer:eh or -printer:ep.  The directory structure
  must be copied beginning from 2 levels above the SQRDIR.

o (DDO) SQR 5.1 supports Begin-Sql.  The syntax is the same as for other SQR ports, with
  the addition of the CONNECTION=value keyword-value pair.  See Begin-Execute in the
  documentation for usage and behavior information.

o (DDO) A log file containing driver-specific information, some of which may not be
  available in the sqr.log file, is generated automatically. The file, SQRDDO.LOG, is
  placed in the SQRDIR directory.

Changes in Release 5.2
----------------------

o (DDO) The Declare(alter)-Connection command now has an additional keyword,
  [no-duplicate=TRUE/FALSE], which is an optional keyword to restrict a Connection
  to a single active login. The default value is FALSE, which allows SQR to
  create an additional login to a datasource when it is found to be busy
  with a different query.
 
o (DDO) List variables.  List variables now support 'dot notation' for referencing
  members (ie, let %lname[ row ].col2 = 'abc' and let $v = %lname[ row ].col1).
  List variables may not be passed as parameters to local functions.
 
o (DDO) The syntax for Begin-Select reintroduces the commonly-used concept of
  aggregate functions in the place of column variables. ie, sum(column) as opposed
  to 'column'.  The type of function used is left to the user, and will produce
  a runtime error if it is not supported by the datasource. Also, literals may
  be referenced alongside column variables, both numeric and string. Both of these
  features have been part of SQR traditionally, and now appear in SQR DDO.
 
o (DDO) Ported DDO-JDBC to the Tier 1 Unix platforms (SunOS, IBM-AIX, HP-UX).

============================================================================

Year 2000 date handling
-----------------------

Internally, SQR stores the year component of dates with four digits.
Therefore, SQR is Year 2000 compliant. It is possible that SQR customers have
chosen NOT to use this feature in program design and coding but the default
date storage methodology of SQR is to use four digits to store the year.

There are specific issues which arise in relation to the use of SQR with the
Oracle RDBMS. By default Oracle 7 does not accept a four digit year as being
valid whereas Oracle 8 does. Oracle 7 can be configured to accept a four digit
year.

============================================================================

Known problems
--------------

o (SPF Viewer) If the caption under a Bar Code is longer than the width of the
   Bar Code itself, the caption text to the left of the Bar Code will not be
   visible. This problem does effect the printed report.
  (DDO-only) Under Windows 98/95 the viewer will not display the spf file. The
  spf file is valid, but can only be viewed on Win NT or a Unix system.  

o If the PRINTER-CHART parameter LEGEND-PLACEMENT is set to CENTER-LEFT and
   the Y-AXIS-LABEL parameter is also specified, the Y-AXIS-LABEL value will
   overlap the right edge of the legend box.

o If attempting to use sqrwp to print graphics, a blank page will print unless
   you insert a print line in your SQR code with any text character(s) or a
   space character before printing the graphics.

============================================================================

Resolved Customer Reported Issues
---------------------------------

Defect #   Description
------------------------------------------------------------------------------
0126       The BEGIN-SQL and BEGIN-SELECT commands can now span multiple lines.

0207       (Oracle)  Using a bind variable in a GROUP BY expression is now
           supported.

0221       The PRINT command using the WRAP option now properly retains the
           COLUMN index when a page break occurs.

0257       The PRINT-CHART command now properly works in conjunction with the
           NEXT-LISTING command.

0305       The NEXT-COLUMN command no longer positions itself incorrectly
           when it causes a page break to occur.

0351       (Sybase) The EXECUTE command now supports the "WITH RECOMPILE"
           option without having to specify an "INTO" clause.

0353       (Oracle) SQR now retrieves database numeric values irrespective of
           the NLS_LANGUAGE setting.

0533       The PRINT-CHART command now uses the same font for the title and
           sub-title.

0567       (Windows) The SQR Printer module (SQRWP) no longer produces the
           SQR error message "(SQR 6605) End document failed" when the
           -PRINTER:HP command line flag is specified.

0568       SQR now properly reports an error if BEGIN-REPORT is specified
           within an existing BEGIN-REPORT section.

0603       (Oracle) SQR no longer produces the ORACLE error message
           "(00933) SQL command not properly ended" when dynamic variables
           are used in an ORDER BY clause and more than one dynamic variable
           is NULL.

0670       The PRINT command using the WRAP option now properly positions
           itself on the next page when a page break occurs.

0747       SQR no longer produces a fatal error (core dump) when the LET
           EDIT() function operates on a DATE column and the 'MONTH', 'R[n]',
           or 'DAY' edit masks are used.

0754       The DECLARE-IMAGE command no longer requires that the SOURCE
           parameter be specified.

0763       The ALTER-PRINTER command is no longer ignored when it is the
           first 'print' related command that is executed.

0782       (Windows) Callable SQR now properly resets the -ZIV command line
           flag after each invocation.

0807       SQR no longer produces a fatal error (core dump) when the maximum
           number of DOCUMENT markers is exceeded.

0844       SQR error messages 4503, 4504, and 4505 now indicate the source
           line where the error occurred.

0845       SQR now properly reports the name of the #INCLUDE file if an error
           is detected while processing the #INCLUDE file during the compile
           phase.

0853       Added a new command line flag, -XTB, which preserves trailing
           blanks for Line-Printer output files.

0869       SQR now generates the proper error message when an error occurs
           while parsing the BEGIN-HEADING command.

0889       SQR now properly prints right justified negative numbers when
           using a proportional font.

0915       Problems with referencing SQR numeric variables in a WHERE clause
           have been corrected.

0962       The DECLARE-PRINTER command now supports fractional numbers with
           the PITCH parameters.

1080       The maximum SQR line length has been increased from 255 to 511
           characters.

1081       SQR now properly handles report filenames longer than 80 characters.
           The maximum size permitted is now 1024 characters.

1126       SQR no longer produces and error message if the -ZIF filename is an
           empty file.

1132       SQR now properly produces an Overlapped Bar Chart when one set of
           data is specified.  The color of the chart will now match the
           legend.

1133       SQR now properly produces an Overlapped Bar Chart when one set of
           data is specified and the y-axis scale is set to LOG.  The y-axis
           value is properly generated.

1147       (Sybase) The EXECUTE command no longer produces a Sybase error when
           the stored procedure returns variable length data.

1158       (Windows) The LAST-PAGE command no longer overwrites the number
           with the post text when the -PRINTER:WP command line flag is used.

1166       The PRINT-IMAGE command no longer produces an 'internal' SQR error
           message when the image name is not specified.

1172       SQR now properly treats a line starting with multiple comment
           characters (!) as a comment.

1177       (Windows 3.x) SQR now longer causes Windows to drop to DOS when
           the -XCB and -C command line flags are used at the same time.

1181       SQR now supports database error messages up to 512 characters.

1182       (Sybase CT-LIB) SQR no longer causes a Sybase error when processing
           an SQL "drop table" command after that table was the target of
           an SQL "insert" command while retrieving rows from the database.

1196       The CREATE-ARRAY command is no longer required to be placed
           physically before any commands that reference it.

1204       The GRAPHIC BOX command now properly produces a box when shading is
           specified.

1209       The DECLARE-IMAGE command is no longer required to be placed
           physically before the PRINT-IMAGE commands that reference it.

1272       (Windows 3.x) SQR no longer produces a fatal error (core dump) when
           the -C command line flag is used.

1274       The default LOAD-LOOKUP sort mode has been changed from DC (Database
           Case Sensitive) to SC (SQR Case Sensitive).

1278       The NEW-REPORT command now properly resets the SQR reserved variable
           #PAGE-COUNT.

1287       SQR now properly generates the VMI and HMI values for HP LaserJet
           listing files.

1288       The DECLARE-PRINTER INIT-STRING value is now placed after the reset
           code for HP LaserJet listing files.

1290       The PRINT-CHART command now properly triggers the DECLARE-PROCEDURE
           BEFORE-PAGE procedure.

1294       (Windows) The PRINT-BAR-CODE command no longer outputs a default
           caption under the bar code when the CAPTION parameter is either
           absent or references an empty string.

1303       SQR now properly treats a line starting with "!=" as a comment.

1312       The CREATE-ARRAY command now operates significantly faster than
           previous versions.

1330       The DECLARE-LAYOUT command now produces a proper error message when
           an invalid Unit-Of-Measure suffix is specified.

1373       (Windows) The INPUT command with the NOPROMPT option now works
           correctly with the Communication Box.

1375       (HP LaserJet) SQR no longer produces blank pages when multiple
           PRINT commands print to the last line of the page.

1544       (Windows) SQR now properly handles extended ASCII characters when
           directing the report output to the Windows Printer.

1590       The DECLARE PRINTER command now works correctly in conjunction with
           the NEW-REPORT command.

1613       The UNSTRING command no longer produces a fatal error (core dump)
           when the destination string is also a source string.

1646       SQR now allows &pseudonym={Type} be specified for BEGIN-SELECT
           columns and expressions (exactly the same as dynamic columns).

1654       The WRITE command now properly produces an error if a width is
           specified without a preceding variable name.

1747       SQR now properly generates PostScript code for the A4 paper size.

1903       (Oracle) SQR now properly supports retrieval of VARCHAR2 variables
           from a stored procedure within a PL/SQL block.

1905       (Windows) The SPF Viewer Module (SQRWV) now properly prints a
           report with very small character widths.

1923       (Oracle) SQR no longer produces an error when a dynamic variable
           is used as a parameter with the IN clause.

1929       (Oracle) The supplied sample program EXPORT.SQR now properly
           handles the time portion of DATE columns.

1949       The PRINT-IMAGE command now properly works in conjunction with the
           NEXT-LISTING command.

1969       The PostScript output generated by SQR for complex reports no longer
           causes 'out of memory' errors when sent to a PostScript Level 1
           printer.

1974       The PRINT command with the ON-BREAK PROCEDURE= parameters now works
           the same when run from SQR or SQRT.

1977       The LOAD-LOOKUP command now properly handles the GROUP BY clause in
           the WHERE qualifier.

2000       (Sybase) The EXECUTE command will now update the @#Status= parameter
           even if an error occurs within the specified stored procedure.

2006       (Sybase) The BEGIN-SELECT LOOPS= parameter and the EXIT-SELECT
           command now terminates the select statement faster than previous
           releases.

2027       The PRINT-CHART command now properly works when the parameter
           DATA-ARRAY-COLUMN-LABELS is set to either NONE or the name of
           an array which contains the column labels.

2052       SQR now properly produces an error when an attempt is made to
           print outside the page boundary (left margin, top margin).

2057       SQR no longer produces an error when multiple BEGIN-SELECT
           paragraphs define the same unnamed literal expressions.


(4.0.0.2)

2086       (Sybase) SQR now properly allows the DO= procedure in the EXECUTE
           command to contain another EXECUTE command.

2103       (Windows) Corrected incompatibility with OCX controls and Visual
           Basic applications.

2104       Added support for SQT files generated by the Japanese (Double-Byte)
           version of SQR.

2105       Changed references from MITI to SQRIBE Technologies.

2110       Added -XI command line flag.  This flag causes SQR to produce an
           error message if an ASK or INPUT command requires user interaction.


(4.0.1)

2119       An "if" statement that tests whether a decimal datatype  is greater
           than 0 will not fail when the decimal value is greater than 0 but
           less than 1.

2120       Using WRITE from &var will work when &var contains upper case
           characters.

2124       Can now access a temporary table in EXECUTE command that has a DO
           procedure.

(4.0.2)

1253       (ODBC:SQL Server) Using 'select into' to create a temporary table
           now works properly.

1302       (Windows NT/95) SQR now correctly positions the Graphic HORZ-LINE
           when printing to the Windows Printer (-PRINTER:WP).

1506       (Windows NT/95) The SPF Viewer not longer produces an error when
           a large number (i.e. 99999) is entered as the "Go To Page" value.

1682       (ODBC:SQL Server) SQR no longer produces errors when processing an
           SQT file that was created using a different data_source/user/pass.

1954       (Sybase; Windows NT/95) The help files SQRW.HLP and SQRWT.HLP now
           have all the proper command line flags explained.

1955       (Oracle; Windows NT/95) The help files SQRW.HLP and SQRWT.HLP now
           have all the proper command line flags explained.

2004       (ODBC:SQL Server) Increased the maximum number of concurrent open
           cursors to 100 in order to handle complex reports.

2059       (ODBC:SQL Server) SQR now properly allows the DO= procedure in the
           EXECUTE command to contain another EXECUTE command when a USE
           command is in the BEGIN-SETUP section or the -DB command line flag
           was specified.

2090       (Sybase) SQR no longer produces an Internal Coding Error when a
           dynamic column (type=number) is used with the EXECUTE command.

2118       SQR now properly returns a NULL value for DECIMAL/NUMERIC database
           columns when the select does not return any rows.

2123       (Windows NT/95) SQR now correctly echoes user input (from the INPUT
           and ASK commands) in the .LOG file.

2130       SQR now properly handles the PRINT option PRINT=CHANGE/TOP-PAGE in
           conjunction with the WRAP KEEP-TOP option.

2133       SQR now properly sets the PRINT ON-BREAK SAVE=$VAR variable when the
           column is a DATE.

2145       (Sybase) The provided sample program EXPORT.SQR will now properly
           create the "import" program when System 10/11 numeric datatypes
           are required to recreate the table.

2146       (Windows 95) See #2138

2149       (Sybase) SQR no longer produces a core dump when processing an SQT
           file that had an EXECUTE command which stored a value into a DATE
           or DATETIME column.

2151       SQR no longer produces an error when the LOAD-LOOKUP command is
           used with all it's options are specified.

(4.0.3)

2138       (Windows 95) SQR no longer produces a GPF (General Protection Fault)
           when it finishes printing the report.

2166       (ODBC/SQL Server) This was a table locking problem were locks were
           being set during a select so that another session could not select
           from the same table.

2167       (Windows 95) A page fault error no longer occurs when you shut down
           the viewer.

2181       (Windows 95) You can now print using the sqrwp command.


(4.1)

2113       (Windows 95/NT): SQRWP no longer improperly parses its command line
           when multiple spaces separate the arguments.

2116       SQR can now handle -ZCF command files with lines up to 1023
           characters.

2139       (DB2) Columns variables are now properly set to NULL prior to the
           SELECT being executed.

2155       (ORACLE) SQR no longer produces an error when nested select
           statements contain DATE columns.

2158       SQR no longer ignores the -ZIF command line switch.

2164       SQR Viewer now properly displays SPF files which contain fixed
           pitch fonts.

2165       (SYBASE) SQR now puts 'sqr' in the 'master..sysprocesses' table.

2174       SQR no longer deletes the "System" locale when the locale is set to
           something other than 'System'.

2177       The Unix version of SQR can now process non-Unix (i.e. DOS) report
           files without conversion.

2183       (ORACLE) SQR no longer causes an error when NULL DATE columns are
           selected with non-NULL DATE columns.

2193       (ORACLE) SQR no longer causes error when selecting data from a
           NUMBER column with a precision of one (1) and a value of zero (0).

2195       SQRP no longer randomly loses fonts.

2196       SQR now supports embedded spaces in directories/filenames.
           The syntax is:  sqr "long file" {connectivity} "-Fspacey dir\"

           The syntax is the same for Windows NT and Unix platforms

2197       SQR no longer causes a core dump when processing a bad SQT file.
           An error message is now produced and processing is halted.

2198       SQRP can now produce HTML output from older SPF (pre v4.0) files.

2202       SQR Viewer now properly displays SPF files which contain fixed
           pitch fonts.

2205       SQR now properly handles the ROUNDing of decimal numbers.

3001       SQR no longer causes a protect fault when processing an SQT file
           which contained a printer name that matched a valid printer-type
           (e.g. 'ps, 'postscript').

3010       SQR no longer causes a protection fault when attempting to MOVE
           very large string variable data.

3014       SQR now properly detects NULL numeric database columns with the
           LET EDIT() function.

3016       SQR no longer corrupts it's internal variable values when the
           ARRAY-ADD/SUBTRACT/MULTIPLY/DIVIDE commands are used with DECIMAL
           entries.

3020       SQR now properly sets the VMI (Vertical Motion Index) when the
           LINE-HEIGHT is set to 1 for PRINTER:HP reports.

3023       (ODBC) SQR can now insert into a temporary table while selecting
           from a temporary table.

3036       The DECLARE-PRINTER command no longer produces an error when
           the POINT-SIZE qualifier is specified for an HTML printer type.

3043       SQR no longer aborts processing when attempting to perform a LET
           EDIT() function against a date column when the EXPRESSIONSPACE
           value greater than the default.

3047       (ODBC) SQR no longer causes argument values to be set to NULL when
           specified as OUTPUT in the EXECUTE command.
3054       SQR no longer causes a protection fault when numeric variables are
           used as source material for the STRING command.
3062       SQR now properly invokes the Before/After procedures when a blank
           page is generated (e.g. new-page new-page)
3063       SQR (-PRINTER:HP) now correctly handles floating dollars characters
           with proportional fonts.
3066       SQR now correctly creates the PostScript code for the PRINT-BARCODE
           command when the CAPTION qualifier is not specified.
3068       SQRWV (SPF Viewer) no longer requires Microsoft DLL's
           (i.e. MSVCRT.DLL) to be present on the host machine.

3023       (Windows:Oracle) SQR is now able to be called from an PRO*C program
           as described in this document.

3076       (Windows) SQR now supports "blank" characters in the connectivity
           fields.

B001       (Unix) SQR no longer leaves a leading forward slash to .GIF file
           references in .HTM files.

B002       SQR no longer causes a protection fault when using the LOOKUP
           command against a dynamic LOAD-LOOKUP table.

B003       SQR now manages memory more efficiently with the LET command.

B004       (Windows/ORACLE) SQR no longer causes a GFP if it cannot find
           the ORACLE DLL file.

B005       (Vax) SQR no longer causes a protection fault when using the
           ALTER-LOCALE command.

B006       Added new SAMPLE program to illustrate the new HTML functionality.

B007       SQR now properly creates .HTM files when the default printer
           type is 'PRINTER-HT'.

B008       SQR no longer causes a protection fault when processing an SQT
           file when the SQR.INI file specified a default locale other than
           'System'.

B010       Modified Sun/SunOS, HP/HP-UX and IBM/AIX scripts to support the
           ORACLE 8.0.3 library structure for relinking SQR.

B011       (Windows) Corrected problem with command line validation between
           -BURST and -PRINTER:.

B012       (Sybase) SQR no longer produces a protection fault when very large
           SQR programs are compiled with SQL statements.

B014       (Windows) SQRWP no longer accesses the 'default' printer to be
           defined when -PRINTER:HT or -F is specified.

B015       SQR no longer causes a memory overwrite when the number of report
           pages exceeds 99999 and an SPF file was created.

B016       (Windows) SQR no longer causes a "Division By Zero" error when
           printing to the Windows Printer and attempting to use a font which
           does not exist on the system.

B019       Changed the .GIF files for the 'first', 'next', 'prev', and 'last'
           hyper-text links.  Also, changed the SQR.INI file defaults to match
           the new .GIF files.

B021       Add a new command line flag, -XNAV, which will prevent the creation
           of the 'Navigation Bar' in the generated .HTM files.  This will
           only happen when a single .HTM file is produced; that is, multiple
           .HTM files from a single will always get the 'Navigation Bar'.

B025       Closed a memory leak when converting a string to a decimal number.

B028       (ODBC) Corrected protection fault when the EXECUTE command specified
           a FLOAT #Variable as an output parameter.

B029       Corrected very subtle truncation bug:
             trunc(1.000001,6) => 1.00000 not 1.000001

B034       SQR now properly sets the page anchor for HTML output to be after
           the horizontal bar (page-break indicator).

(4.2 Beta 1)

2112       Added support for double-byte characters.  There are new modules
           with a 'j' suffix (e.g. SQRJ, SQRTJ, SQRPJ, etc.) which can support
           double-byte characters.  These modules run slower than the
           corresponding single-byte version.  Set the environment variable
           ENCODING to one of the following values: ASCII, SJIS and JUEC.
           The default value is ASCII.

3076       SQR now supports embedded spaces in the connectivity string.
           The syntax is:  sqr file "{connectivity}"

3096       (ORACLE) Callable SQR no longer causes a segmentation fault when
           called from a PRO*C program that closes the connection to the
           database then calls 'sqrend()'.

3102       (INFORMIX) Callable SQR no longer prevents the user from running
           different SQR programs during the same program run.

(4.2 Beta 2)

3107       SQR no longer creates a (decimal) negative zero under certain
           conditions.

(4.2 Beta 3)

B023       The NCR 3000/SVR4 V3.0 MP-RAS platform is now supported for
           Informix, Oracle, and Sybase databases.

3116       (WINDOWS) The -XMB flag is now accepted when entered in the "Report
           Arguments" box in addition to the command line.

3123       (WINDOWS) The "Call System" command with the WAIT option will now
           wait infinitely for the sub-process to terminate.

3124       (ODBC) SQR now properly sets the variable #SQR-STATUS when an SQL
           error is encountered.

3131       (SYBASE) SQR now properly sets the #SQL-STATUS & $SQL-ERROR
           variables when the EXECUTE command has an error and the ON-ERROR
           qualifier was specified.

3133       SQR no longer returns an invalid result when the LET RTRIM() is used
           against a DATE column/variable when the function did not perform the
           trim.

3136       (WINDOWS:ODBC) SQR now properly puts the Database/Username/Password
           elements in their proper fields when the report name is specified
           with the ? character (e.g. SQRW ? database/username/password).

3138       (WINDOWS) SQR no longer forces the default printer type to
           LINEPRINTER when it is invoked from an ICON.

(4.2 Beta 4)

B032       (SEQUENT) Initial port to the Sequent (Dynix/ptx) platform for
           Informix, Oracle, and Sybase databases.

B101       (AIX) Initial release for the IBM DB2/6000 database.

3145       (WINDOWS:ODBC) SQR no longer produces an "ODBC truncation" error
           when attempting to INSERT the contents of an SQR $VARIABLE whose
           length is greater than 255 characters.

3152       (Informix) SQR now recognizes both NCHAR and NVARCHAR datatypes
           and treats them as CHAR and VARCHAR respectively.

(4.2 Production)

3092       (WINDOWS:Informix) Callable SQR now properly releases all
           connections made to the database (not just the last one).

(4.2.1)

3158       SQR no longer causes a protection fault when the -PRINTER:HT
           command flag is specified and the report output filename does not
           contain an extension (either via the -F command line flag or the
           NEW-REPORT command).

3175       (MVS,AS400) Corrected problem with -PRINTER:LP output and the
           PRINT UNDERLINE command.

3176       (WINDOWS) SQR no longer causes random protection faults with
           -PRINTER:LP output when using the PRINT UNDERLINE command.

(4.2.1.1)

3208       (WINDOWS) The SPF Viewer and SQRWP now properly handle "decorative"
           fonts (e.g. WingDings).

(4.2.2)

3211       (DB2) SQR now properly handles NULL 'DATE' columns when interspersed
           with non-NULL 'DATE' columns.

(4.2.3)

3187       SQR Viewer now properly displays numbers from SPF files which
           contain fixed pitch fonts.

3193       SQR no longer causes a protection fault when the -PRINTER:HT
           command line flag is used along with PRINT CODE-PRINTER=HT
           commands against an empty string.

3214       (ORACLE) DATE columns now retain their value after the BEGIN-SELECT
           section ends.

3218       SQR now properly invokes the PRINT ON-BREAK procedures irregardless
           of the size of the SQR program.

3221       SQR now properly creates the SPF file according to the -PRINTER
           command line flag.

(4.2.3.1)

3241       SQR no longer causes random failures with Callable SQR when
           sqrend() was not used between sqr() invocations.

3242       (Informix) SQR now uses a named connection rather than the default
           connection.  This was done to prevent Callable SQR from closing
           the caller's connection.

(4.3)

3071       (DB2) SQR longer generates an error when a BEGIN-SELECT paragraph
           contains an expression that spans multiple lines.

3227       Corrected memory leak with the CLEAR-ARRAY command.

3232       (ODBC) SQR no longer causes a protection fault when an invalid
           connectivity string was passed to SQRT or SQR with the -RT command
           line flag.

3239       (Informix) SQR now correctly handles forward referenced numeric
           columns when used in a WHERE clause.

3245       SQR no longer produces an error when referencing an array DATE
           field.

3259       SQR now properly outputs the correct printer with error message
           6213 (Report 'xx' is referenced by multiple 'pp' printers.)

3260       (ODBC) SQR no longer requires the variable name referenced by the
           -DB option to be in lowercase characters.

3290       (Sybase) SQR no longer causes a protection fault when processing
           an SQT file which contains a LOAD-LOOKUP in the BEGIN-SETUP
           section.

3296       (SPF Viewer) Corrected problem with processing SPF files generated
           on UNIX systems.

3392       The entry for Thursday in the [Locale:French] section of the
           SQR.INI is now correctly defined as "jeudi".

3585       SQR no longer returns improper results when the LET WRAPDEPTH
           function is used within a 'complex' equation.


(4.3.1 Beta)

2036       SQR will now produce the same error message across all platforms
           when the page width/depth exceeds the maximum limits allowed.

3111       (SPF Viewer) The viewer no longer produces a warning message that
           SQRDIR is not defined the first time the viewer is invoked on a
           system.

3154       (SPF Viewer) The stand-alone viewer is now shipped with a properly
           formatted SQR.INI file.

3182       SQR will now produce the same error message across all platforms
           when the computed page width/depth exceeds the maximum limits.

3191       SQR can now optionally output the Form-Feed characters when the -D
           command line flag is used.

3210       (ODBC) SQR no longer requires the variable name associated with the
           -DB flag to the BEGIN-SELECT/BEGIN-SQL statement to be in lowercase
           characters.

3220       SQR no longer causes random protection faults with the CONCAT
           command and numeric columns.

3243       (HP-UX) The SQR installation CD no longer requires the use of the
           pfs_mount command.  The standard mount command can be used.

3252       (Sybase) The Sybase function 'host_name()' will now return the
           same value as when executed from 'isql'.

3253       (SPF Viewer) The print preview feature now works properly.

3264       (ODBC) SQR now properly handles NULL DATETIME values when returned
           from a stored procedure when executed from the EXECUTE command.

3271       (SPF Viewer) The viewer no longer prevents other applications from
           using previously viewed SPF files while the viewer is active.

3276       SQR now produces a warning message when a two digit year edit mask
           (YY or RR) is encountered.

3378       SQR now properly produces a viewable Table of Contents when the
           layout attribute are not the default.

3382       SQR no longer procedures an error when the TOC-ENTRY TEXT= variable
           name is not in lowercase characters.

3554       SQR no longer produces an error when more than one TOC-ENTRY is
           specified for a line.

3599       SQR no longer strips embedded ^M characters from the SQR program on
           UNIX platforms.

3600       (Sybase) SQR now properly scans for the "COMPUTE" keyword.

3666       SQR no longer causes a protection fault with the CONCAT command
           and NULL character columns.

3690       (Oracle) SQR now properly handles NULL values with PL/SQL blocks.

3798       (SPF Viewer) The double-byte viewer now has a help file.

3799       (SPF Viewer) The print preview feature now works properly.

3800       (SPF Viewer) The viewer now produces a proper error message when
           an invalid value is entered for the View->Go To dialog box.

3856       SQR no longer produces a protection fault when a scattered XY graph
           has more user defined labels than datasets.

3917       (Installer) The Redbrick ports for HP/HP-UX, IBM/AIX, and
           Sun/Solaris platforms can now be properly installed.

3923       (DB2) SQR no longer limits SQL statements to be less than 8000
           characters.  The limit is now controlled by the SQLSIZE entry
           from the [Processing-Limits] section of the SQR.INI file.

3961       SQR no longer produces an error when a LOAD-LOOKUP command attempts
           to reference a local variable with the WHERE= parameter.

3962       (Windows) When installing SQR the install program will now provide
           the user with the existing registration information, if any.

3980       (ODBC) SQR no longer produces an error when an INTEGER #variable
           is used as a bind variable.

3983       (ODBC) SQR no longer produces an error when an DECIMAL #variable
           is used as a bind variable.

4008       (WINDOWS) Make SQRW and SQRWP compatible with Windows 98

4143       Added support for Enhanced HTML


(4.3.1)

1678       (ODBC) With the EXECUTE command the "WITH RECOMPILE" option no
           requires the "INTO ..." section to be specified.

2175       (ODBC) Added -TB command line flag to Trim Blanks from character
           column data.

3011       (ODBC:SQL Server) SQR no longer produces an error when attempting
           to create a table using an "SELECT INTO ..." SQL statement after
           dropping the table.

3058       (Sybase) SQR no longer produces an error when attempting to execute
           a stored procedure (which uses temporary tables) via the EXECUTE
           command and the DO= procedure also execute a SQL statement.
           
3065       SQR no longer produces an error when a BEGIN-SELECT statement
           contains a UNION in which the second select has a "group by" and a
           dynamic variable reference and the first select does not have a
           "group by".

3083       (WINDOWS) SQR (and SQRWP) now properly prints the bitmap (from
           the PRINT-IMAGE command) on all platforms (95/98/NT) when the
           -PRINTER:WP command line flag is specified.

3190       (ODBC) SQR now uses row buffering to increase performance.  The
           default number of rows is 10.  This value can be changed by either
           using the -B command line flag or specifying -B option on the
           BEGIN-SELECT statement.

3292       (WINDOWS) SQR can now be Uninstalled via the Control Panel
           "Add/Remove Program" applet.

4104       (WINDOWS) SQR now handles "long filenames" properly when invoking
           the SQR Viewer using the -ZIV flag.

4106       (Informix) SQR now properly sets the SQR reserved variable
           $USERNAME to the username rather than the database name.

4110       (Oracle) SQR no longer produces an internal error when a 
           BEGIN-SELECT statement contains a long DECODE() statement.

4144       (Oracle) SQR no longer sets DATE columns to NULL values after the 
           BEGIN-SELECT statement has finished when the number of rows
           retrieved is an exact multiple of the buffering value (-B option).  

4163       (Sybase) SQR no longer produces an error when passing a NUMERIC
           column to a stored procedure via the EXECUTE command.

4243       (WINDOWS) Corrected problems with the SQR Viewer HELP functionality.

4319       (Sybase) SQR no longer causes subsequent BEGIN-SELECT statements
           to fail when a BEGIN-SELECT causes an arithmetic overflow.

(4.3.2)

0381       Increased the maximum number of Document Markers from 120 to 512.

0886       Increased the maximum number of Document Paragraphs from 20 to 128.

2064       Increased the maximum number of Arrays from 20 to 128.

2170       Increased the maximum number of OPEN files from 12 to 256.  The
           actual limit on some systems may be less due to system constraints.

3027       Added new reserved SQR variables #SQR-MAX-LINES and #SQR-MAX-COLUMNS
           which reflect the maximum number of lines and columns from the
           current layout.

3184       (SQR Viewer) The viewer now displays the same file extensions as
           SQR Print.

3190       SQR now uses ODBC "Extended Fetch" logic to increase performance.

3235       Increased the INPUT buffer length from 511 to 2047 bytes to 
           accommodate longer date from argument files (@file).

4162       SQR no longer produces an error when a program contains embedded
           special characters (<177> or <377>).

4317       The installation process no longer request the Username and
           Company information.

4376       (VMS) Changed the return status values to be compatible with both
           VMS 6.2 and 7.1

4416       (SQR Viewer) The viewer now has an option to create a CSV file
           directory from the currently viewed SPF file.

4439       (SQLBase) SQR no longer produces an error when retrieving certain
           DECIMAL/NUMERIC values.

4471       (ODBC) SQR now displays the actual SQL error message when the
           EXECUTE command fails to process the stored procedure.

4472       (ODBC) SQR now accounts for the new Microsoft SQL Server 7.0 
           datatypes.

4492       (WINDOWS) SQR no longer echoes data from the INPUT command to the
           error file but rather the log file.

4493       SQR no longer produces an error when both a BEGIN-FOOTING and
           BEGIN-HEADING sections are defined for a TOC.

4530       Removed correction for defect 3065 due to unacceptable side-
           effects.

4533       SQRP no longer produces illegible output when -PRINTER:HP is used.

4559       (WINDOWS) SQR no longer stops functioning after 30 database 
           cursors are opened when invoked from a PRO*C application which
           performs the database login (instead of SQR).

(4.3.2.1)

4662       (Sybase) The EXECUTE command no longer sets arguments positioned 
           after a DATE column to a stored procedure to NULL if the DATE column
           itself contains a NULL value.

4663       (Sybase) SQR no longer attempts to reuse an active connection with
           the EXECUTE -XC option.

(4.3.2.2)

4630       (HP:ORACLE) Added support for relinking with Oracle 8.0.5 client
           under HP/HP-UX 11.00.

4634       (HPLASERJET) When using very fine grid coordinate values (e.g. 1pt
           by 1pt) SQR now attempts to better guess when a PRINT command will
           put data near the bottom of the page.

4692       Corrected "Using SQRW.DLL from Visual Basic" instructions in this
           document.

4703       (WINDOWS) Updated Help (.HLP) files.

4720       (SYBASE) SQR now declares SQR INTEGER variables as "int" when it 
           creates internal stored procedures to increase performance.

4728       SQR no longer ignores DECIMAL values from the array referenced
           by a PRINT-CHART command.

4746       Corrected typo in description of defect 3058.

4748       (ODBC) The -DB flag to the BEGIN-SQL statement now works as
           documented.

4756       (SYBASE) SQR no longer produces an error when a FLOAT or REAL
           column is returned from the database with more precision than
           anticipated.

4785       (SQLBase) Make SQR compatible with SQLBase 7.0.1

4806       (WINDOWS) SQR now properly generates "0" characters for the
           ZIP+4 Postnet barcode format (type 10).

4820       SQR no longer produces an error with the INPUT statement when
           when the system date is 29-FEB-2000 and the specified edit
           mask uses a two digit year.

4872       (ODBC) SQR now supports the use of "named" parameters with the
           EXECUTE statement.  In to use this functionality your ODBC driver
           must be V3 or above.

4944       (INFORMIX) SQR no longer produces an error when processing an
           SQT file created from a program that uses dynamic selects.

4979       SQR no longer causes a memory when repeated OPEN command fail.


(4.3.3)

3060       (HP LaserJet) SQR now properly an initial ALTER-PRINTER command
           prior to the first output generating command.

3065       SQR no longer produces an error when a BEGIN-SELECT statement
           contains a UNION in which the second select has a "group by" and a
           dynamic variable reference and the first select does not have a
           "group by".

3069       (SPF Viewer) The Viewer now properly displays SPF files which
           were created with extremely small top/left margins.

3108       SQR now properly detects a malformed DEFAULT-NUMERIC option of
           the DECLARE-VARIABLE command.

3246       SQR now properly detects a malformed STRING command.

3512       (ODBC) SQR no longer invokes the ODBC "Function sequence error"
           when the SQR COMMIT command is used.

3578       (HP LaserJet) SQR now properly handles proportional text with 
           regard to the HMI (Horizontal Motion Index) value.

3653       (INFORMIX) Increased performance.

4582       The PRINT option CENTER now takes the font width when centering
           the text.

5053       SQR no longer interferes with INPUT commands when -Dnn is used.

5137       SQR no longer produces a protection fault when the entire
           BEGIN-SELECT is indented.

5158       (WINDOWS) SQRWP no longer produces an error when -EH_CSV is
           specified in all uppercase characters.

5409       SQR no longer prints random garbage when the PRINT edit mask R 
           is used.

5459       (ODBC) SQR no longer invokes the ODBC "Function sequence error"
           when the -DB flag is used.

5613       (DB2) SQR now treats $string variables as NULL when used as a
           bind variable (e.g. insert into table t values ($value))

5615       (DB2) SQR now creates its package as SQR.SQRhhhhh where hhhhh is
           a 5 digit hexadecimal number. This was done to reduce "timestamp"
           conflicts.
           SQR now creates the package with "GRANT PUBLIC" to all all users
           "execute" access.
           SQR now ignores DB2 warning messages.

5661       SQR now properly handles the case where the BEGIN-DOCUMENT text
           exceeds the page width and there are variables to be printed.

5709       (ODBC) SQR no longer produces an error if the column name and
           the dynamic column variable both contain the keyword "into".

5712       Changed (SQR 4716) to reference BEGIN-PROGRAM rather than
           BEGIN-REPORT.

5736       (INGRES) SQR now properly handles the GERMAN and SWEDISH date
           formats.

5745       (SYBASE) SQR now properly shows the number of rows inserted
           when the BEGIN-SQL statement is in the BEGIN-SETUP section.

5750       SQR now properly produces the correct error message when an
           attempt is made to create a $Variable that is too large.

5751       (WINDOWS) SQRW no longer causes a UAE when passed a very long 
           command line.

5753       (ODBC) SQR no longer pads character OUTPUT values from stored
           procedures.

5937       (ORACLE,ODBC,SYBASE) SQR now properly initializes dynamic columns
           to a NULL value in case the SELECT statement does not compile.

6111       (PDF) SQR now properly handles PRINT statements with a specific
           width.

6116       (PDF) SQR no longer causes a protection fault when the report
           contains more than one unique image reference.

6143       (WINDOWS) SQRW now properly references the correct Windows Help
           Viewer when creating the reference to CMDHLP.HLP in the Program
           Group.

6186       Callable SQR no longer produces an error message when attempting
           to run a program will produced multiple charts.

6187       Increased default [Processing-Limits] values.

6242       (Ingres) SQRT no longer causes a protection fault when the report
           references DATE columns.

6248       (ODBC) SQRT no longer causes a protection fault when the BEGIN-SQL
           /BEGIN-SELECT -DB flag is used with a variable.

6391       SQR no longer truncates a PRINT WRAP statement that causes a
           page eject and the page header also contains a PRINT WRAP.

6411       The SQR LET log10() function no longer causes a protection fault
           when it is passed a 0 value.

6429       The SQR LET wrapdepth() no longer 'hangs' when used against a
           large string variable.

6437       (Sybase) The SQR EXECUTE no longer returns an error when attempting
           to execute a stored procedure which returns a 'char(255)' value.

6466       (Windows) SQR no longer reports an error when creating PDF output
           from a report with multiple PRINT-CHART commands.

6534       (Unix) The environment variable TMPDIR will no longer prevent SQR
           from generating reports which contain a TOC-ENTRY command.

6939       (DBCS) The SQR Viewer no longer loses the character set when
           a screen refresh is needed.

7058       (SQR Print) The -F command line flag is no longer ignored when
           -Printer:EH is specified.

7121       (Windows) Corrected problem with handling of quoted arguments.


7139       Increased the maximum number of pages for -Printer:PD from 1000
           to 5000.

(4.3.4)

5144       The -ZIF flag can be specified in the SQRFLAGS environment
           variable on all applicable platforms.

6915       (Windows) SQR will now pass along the -ZIF command line flag to
           the SQR Viewer when the -ZIV command line flag is specified.

7051       Increased performance of SQR when dealing with memory intensive
           operations (i.e. array processing).

7052       Corrected problem in the LET DateDiff() function when the units
           are 'year', 'month', or 'quarter'.

7218       SQR no longer causes a protection fault when an invalid array
           element is referenced more than once.

7281       SQRP no longer causes a protection fault when processing an SPF
           file which contain an empty TOC entry.

7400       (Oracle) Added 8.1.5 to the 'sqrmake' script for HP/HP-UX,
           DEC/Digital Unix, IBM/AIX, and Sun/SPARC Solaris.

7406       SQR no longer causes a protection fault when the CONCAT target
           is the same as the source.

7427       SQR now properly prints NUMERIC (or DECIMAL) database columns
           with an scientific edit mask (e.g. 999.9999E).

7442       SQR correctly handles the centering of text, for HP LaserJet, when
           the the point size has changed from the default setting.

7567       (Oracle) SQR now properly accounts for a negative zero which can
           occur on some UNIX platforms.

7737       (SQLBase) SQR now properly handles "integer" columns from SQT
           runtime files.

(5.1)

0528       Changes SQR to support the longer barcodes.
        	
2058       Allow concurrent use of PDS by other processes even while
           SQR writes to same PDS

5123       SQRP program was not working on AS/400.

6766       (ODBC) SQR modified to handle new temporary table behavior of
           Microsoft SQL Server 7.0.

7071       (MVS Only)The -GPRINT option was not working prior to this 
           release.

7950       (DB2 Only)Date columns no longer need populating (by SELECT) to
           have a valid value.

(5.2)

8772       Resolved problem of SQR/DDO exhausting all system memory.

8860       Enable the SQR/DDO to distinguish between the multiple logins.

8869       Allow for augmentation of the CLASS_PATH sqr.ini variable.

8991       Resolved the failure of the multi-row list assignment functionality.

8992       Increase the number of multi-row list elements to 8192 from 2048.

9173       SQR was aborting if a Begin-Select statement was presented without
           a Begin-Execute when using DDO.

9174       SQR was aborting when a SORT=DI parameter was presented when 
           using DDO.

9239       For DDO the order of SQR procedures was preventing data retrieval.

9240       Expanded the error text for failed begin-sql queries for DDO.

9241       For DDO fixed problem where failed logins was crashing begin-sql, load-lookup
           queries.         

9243       For DDO null dynamic column variables were resulting in syntax errors. 


============================================================================


Using SQR DLLs on Windows NT
----------------------------

You can use any language or development tool capable of using DLLs to invoke
APIs in SQRW.DLL and SQRWT.DLL.  They both export the following functions:

    int sqr(char* cmdline);
    void sqrend();
    void sqrcancel();
    BOOL SetShowIcon(BOOL bShow);

The first three functions are the same as described in the SQR User's Guide
(except that sqr() does not take a HANDLE parameter as it does in Windows).
The last function allows you to hide the SQR icon at run time.

For C/C++ programs, the APIs are declared in the file SQRAPI.H.  Include this
header file in your source code, then link with the import libraries SQRW.LIB
or SQRWT.LIB.  At run time, make sure SQRW.DLL or SQRWT.DLL is available to
your application.

============================================================================

Oracle Specific APIs on Windows NT
----------------------------------

    BOOL  SetNoLogon(BOOL bNoLogon);
    void* GetLDA(void** pHDA);
    BOOL SQRLogon(char* connect);
    void SQRLogoff();

These APIs allow applications to log on to an Oracle database, and have SQR
share the connection; or have SQR log on to the database, then share the
connection with your application.  Calling SetNoLogon(TRUE) prohibits SQR from
logging on to the database.  SetNoLogon() returns the last internal SQR status.
GetLDA() returns a pointer to the internal Oracle LDA; if pHDA is not NULL, the
pointer to the internal HDA is also returned.  If a shared connection is
intended, this LDA must be used for all the OCI calls.  To share the connection
with Pro*C programs, after EXEC SQL CONNECT, Pro*C programs should call
sqllda(GetLDA(NULL)); to fill in SQR's LDA.

SQRLogon(connect) and SQRLogoff() uses SQR to log on/off the database, the
connect string is:    username/password@servername

Example 1.

Log on to the database in SQR, run a number of reports, do something with the
database using OCI calls, then log off the database.

(In C++.)

        if ( SQRLogon("scott/tiger@ourserver.oracle7") )
           {
           sqr("g:\\rptlib\\rpt1.sqr / -fg:\\daily\\rpt1.lis");
           sqr("g:\\rptlib\\rpt2.sqr /");

           LDA* pLDA = (LDA*)GetLDA(NULL);
           // ...... do something with the database using OCI
           SQRLogOff();
           sqrend();
           }

In sqr(), the second parameter, the connect string, has only a slash (/) as a
placeholder.  You may specify some other things, but it is ignored; SQRLogon()
has already done that part.

Example 2.

Log on externally, run some reports, then do something with the database using
OCI calls; finally, log off the database.

        HDA* pHDA;
        LDA* pLDA = (void*)GetLDA((void**)&ppHDA);
        BOOL bLastNologon = SetNoLogon(TRUE);

        // log on outside of SQR --
        if (orlon(pLDI,pHDA,username,-1,password,-1,0))
            ErrorExit("Log on");

        sqr("g:\\rpt1.sqr /");
        sqr("g:\\rpt2.sqr /");

        // ...... do something with the database using OCI

        SetNoLogon(bLastNologon);

        // free up SQR resources
        sqrend();

============================================================================

Extending and Customizing SQR on Windows NT
-------------------------------------------

SQR is extensible via 'ufunc' and 'ucall' (user functions and user calls).
Refer to the SQR User's Guide on how to use them.  'Ufunc' and 'ucall' now
reside inside SQREXT.DLL and/or other DLLs.  You may rebuild SQREXT.DLL using
any language or tool, as long as the appropriate calling protocol is
maintained.  The source code for SQREXT.DLL is included in the shipped package
(EXTUFUNC.C and EXTUCALL.C). In addition to 'ufunc' and 'ucall', SQR invokes a
specific user call in SQREXT.DLL, if present, to carry out console input/output.
In the shipped version, it implements the ANSI terminal emulation that supports
a set of ESCAPE sequences.  You may redefine them to implement more descriptive
user interfaces, or use some third party products (such as scrollable terminal
emulation).

With such extensibility, you are able to customize SQR, such as building a
library of GUI elements, launching animation from your report, or adding other
enhancements.

SQRW.EXE and SQRWT.EXE are only startup stubs for SQRW.DLL and SQRWT.DLL.  When
SQRW.DLL and SQRWT.DLL are being loaded, they look for SQREXT.DLL in the same
directory, and for any DLLs specified in the [SQR Extension] section in SQR.INI
such as:

    [SQR Extension]
    c:\sqrexts\sqrext1.dll=
    c:\sqrexts\sqrext2.dll=
    c:\sqrexts\sqrext3.dll=

If SQRW.DLL and SQRWT.DLL find SQREXT.DLL and the DLLs specified in the SQR.INI
file, they do two things:

1) Call:
    void InitSQRExtension (
      HINSTANCE hInstance,
      FARPROC lpfnUFuncRegister,
      FARPROC lpfnConsole,
      FARPROC lpfnError);

in all the DLLs, passing the instance handle (of the calling module) and three
function pointers.

2) Retrieve, for SQREXT.DLL, a pointer to the function:
    void UserCall (
      char* callname,
      char* strsrc,
      char* strdes,
      double* dblsrc,
      double* dbldes,
      char* params);

Refer to the 'ucall()' function in the SQR User's Guide for these parameters
and how to implement new user calls.  Consult EXTUCALL.C for the sample user
calls.

============================================================================

Implementing New User Functions on Windows NT
---------------------------------------------

You may implement new user functions in SQREXT.DLL or any other extension DLL.
All the extension DLLs must have the 'InitSQRExtension()' function exported,
and it must be exported either in a .DEF file or as LINK command-line options.
If you choose to implement user functions in SQREXT.DLL, you should rebuild the
DLL using the supplied make file, SQREXT.MAK.  If new extension DLLs containing
new user functions are to be used, they must be listed in the [SQR Extension]
section in SQR.INI in the system directory.

For any 'ufunc', you must register it by calling

    lpfnUFuncRegister(struct ufnns* ufunc);

In 'InitSQRExtension()' the function pointer lpfnUFuncRegister is passed in
from the calling module.  Refer to EXTUFUNC.C for the definition of
'struct ufnns' and the sample user functions.

============================================================================

Implementing New User Calls on Windows NT
-----------------------------------------

You can implement new user calls only in SQREXT.DLL, meaning that SQREXT.DLL
has to be rebuilt by SQREXT.MAK.  You must export 'UserCall()' in SQREXT.DLL,
and it must be exported either in a .DEF file or as LINK command-line options.
As in the 'ucall()' function on other platforms, you add code in 'UserCall()'
to dispatch to your new ucall functions.  Refer to EXTUCALL.C.  In implementing
ucall functions, you may want to write messages or errors to the SQR console
output, in which case the two function pointers passed to 'InitSQRExtension()'
from the calling module, 'lpfnConsole' and 'lpfnError', can be used.  They
should have been kept somewhere locally.

============================================================================

Customize Console Input/Output on Windows NT
--------------------------------------------

SQR internally uses a specific user call, 'conio', to do console input/output.
The 'params' parameter specifies different actions.  Refer to EXTUCALL.C.  It
is not for SQR scripts to use.  The SQR calling protocol is:

1.  Query. If this 'ucall' exists, it should always return 1, telling the
    calling module that this function is available; otherwise, the calling
    module will use its own default handler.
2.  Set Title.
3.  Input or Output.  Reads or writes strings.
4.  Close.  Tells the console emulation to close.

============================================================================

Using SQRW.DLL from "C" or "C++" Programs
-----------------------------------------

To call the functions in SQRW.DLL from a C/C++ program you must first
include the function declarations. This is done by placing the following
statement near the beginning of the source module:

      #include <sqrapi.h>

This file is located in the LIBW subdirectory.  Be sure to have this directory
in the list of directories the compiler uses to search for include files.
To call SQR, call sqr() and pass a command line.  For example, in C:

      status = sqr("myprog tutorial/secret arg1 arg2 arg3", hInstance);
      if (status != 0)
        ...error occurred...

When you link your program, include the import library SQRW.LIB with the
rest of the libraries required for your application.  This import library
establishes the entry points into SQRW.DLL.

============================================================================

Using SQRW.DLL from Visual Basic
--------------------------------

You can call SQR from Visual Basic, Microsoft Access and any other application
that supports VBA (Visual Basic for Applications).  To run an SQR report, you
must declare a global external function.  This is done from the Declarations
area:

    Private Declare Function sqrw Lib "sqrw.dll" Alias "sqr"
    (ByVal c$) As Integer

Note that we name the function sqrw instead of sqr.  The reason is that sqr is
a reserved word in Visual Basic-the square root function.  We use the Alias
option to tell Visual Basic that the function within the DLL is called "sqr".

To run a report, use the sqrw function.  For example, consider the following
line of VBA code:

    status% = sqrw("C:\REPORTS\SALES tutorial/secret")

This example runs the Sales report using "tutorial" and "secret" as the user
name and password respectively.