[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
Changes in Versions
- Subject: Changes in Versions
- From: John Mcnall <jmcnall@TGTSOLUTIONS.COM>
- Date: Thu, 13 Jan 2000 10:38:16 -0500
- Importance: Normal
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.