home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-386-Vol-2of3.iso
/
5
/
52chgs.txt
< prev
next >
Wrap
Text File
|
1993-02-21
|
19KB
|
638 lines
Changes from CA-Clipper 5.01 to CA-Clipper 5.2
This document contains a summary of changes made to CA-Clipper 5.2. A
more detailed description of all items will be available in the
Norton Guide file that comes with your CA-Clipper 5.2. If you have
further questions please post a message on the Clipper forum on
CompuServe -- we'll be happy to answer your questions.
By Luiz Quintela
Product Manager
CA-Clipper, CA-Visual Objects for Clipper, CA-C++, CA-CommonView
NEW: Memory Management
CA-Clipper 5.2 improves the handling of expanded memory. Version
5.01 applications would hang in certain circumstances on a machine
using a LIM 4.0 compatible EMS driver with the page frame disabled.
CA-Clipper 5.2 requires that you enable the EMS page frame. If the
EMS page frame is not detected, EMS will not be used.
NEW: LIM 4.0 support
Support for LIM 4.0 has been added. If CA-Clipper detects a LIM 4.0
compatible driver, up to 32MB of EMS will be used.
NEW: RSIS support
CA-Clipper is now RSIS (Relocatable Screen Interface Specification)
compliant. This produces faster screen updates when a RSIS compliant
driver is loaded.
CHANGED: Database error handling
In CA-Clipper 5.01, using database commands without an open work area
would not cause an error. With the following exceptions, CA-Clipper
5.2 now produces a "Work area not in use" error.
EIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"
o Function Return value o
CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP
o o
o EOF() --> .T. o
o BOF() --> .T. o
o FOUND() --> .F. o
o DELETED() --> .F. o
o RECNO() --> 0 (zero) o
o LASTREC() --> 0 (zero) o
o FIELDNAME(1) --> "" o
o FCOUNT() --> 0 (zero) o
o INDEXORD() --> 0 (zero) o
o INDEXKEY() --> "" o
o DBSTRUCT() --> {} (empty array) o
o HEADER() --> 0 (zero) o
o RECSIZE() --> 0 (zero) o
o LUPDATE() --> / / (empty date) o
o o
EIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
CHANGED: Miscellaneous error handling
Improved error handling in many CA-Clipper commands and functions
traps and reports missing arguments or invalid arguments passed to
them.
CHANGED: Aliases
CA-Clipper now detects illegal characters in the alias and produces
an EG_BADALIAS error.
CA-Clipper now generates an EG_DUPALIAS error if you attempt to
create an alias identifier that is already in use.
CHANGED: Reserved Word
AADD has been added to the Reserved Word list.
NEW: Unrecoverable error messages
Unrecoverable errors are runtime errors that for some reason cannot
make use of the error system. The following runtime unrecoverable
error messages are now documented:
24 Write error
331 String/array memory overflow
332 String/array memory overflow
415 Cannot open overlay file
5302 Conventional memory exhausted
5304 Conventional memory exhausted
5306 Conventional memory exhausted
5312 VM swap file overallocated
CHANGED: Miscellaneous Fixes
LABEL FORM now uses the SET DEFAULT setting to locate files when the
.LBL file is not in the default directory and an absolute path name
is not specified. DBEDIT() now accepts memory variables and
expressions as arguments in the <acColumns> array.
When specified, DBEDIT() now properly displays field aliases in
column headings. This is consistent with the Summer '87 version of
CA-Clipper.
WAIT now accepts characters in the range 32 through 255 (ASCII).
MENU TO no longer repaints the screen with the last prompt when you
press <Esc> to exit the menu.
CHANGED: COPY FILE
The COPY FILE command now allows control characters to be copied to a
device (printer, serial port, etc.).
CHANGED: CREATE FROM
The following clauses have been added.
NEW is an optional clause that designates that the newly created
database should be opened in a new workarea.
ALIAS <cAlias> is the alias name to use when opening the database in
a new work area.
VIA <cDriver> is the name of the database driver to use to create the
database.
CHANGED: INDEX ON
FOR <lCondition> specifies the conditional set of records on which to
index.
WHILE <lCondition> specifies another condition that each record
processed must meet
EVAL <lCondition> specifies a condition that is evaluated either for
each record processed or at the interval specified by the EVERY
clause
EVERY <nRecords> specifies a numeric expression that modifies how
often EVAL is evaluated.
ASCENDING specifies that the index keys be sorted in increasing order
of value.
DESCENDING specifies that the index keys be sorted in decreasing
order of value.
CHANGED: REINDEX
EVAL <lCondition> specifies a condition that is evaluated either for
each record processed or at the interval specified by the EVERY
<nRecords> clause.
CHANGED: RESTORE FROM
Various bugs have been fixed.
CHANGED: SET ORDER*
SET ORDER* is now classified as a compatibility command. It is
recommended that you use the new SET TAG command instead.
CHANGED: BROWSE()*
BROWSE()* is now classified as a compatibility function. It is
recommended that you use the TBROWSE class instead.
NEW: COLORSELECT()
COLORSELECT() activates the specified color pair, it does not alter
the current SET COLOR setting.
CHANGED: DBCREATE()
DBCREATE() now accepts an optional additional parameter <cDriver>.
<cDriver> is the name of the database driver to use to create the
database.
CHANGED: DISPCOUNT()
DISPCOUNT() determines the current display context.
CHANGED: DISPBEGIN()/DISPEND()
Each call to DISPBEGIN() defines a new display context. Output to the
display context is suppressed until a matching DISPEND() statement is
executed.
CHANGED: MEMOEDIT()
In the previous release of CA-Clipper MEMOEDIT() failed to append a
NULL character to the end of its return string.
CHANGED: SCROLL()
You can now scroll columns horizontally.
NEW: #STDOUT
The new directive #STDOUT causes the compiler to output a literal
text to the standard output device (stdout) during compilation.
NEW: ANNOUNCE
ANNOUNCE is a declaration statement that defines a module identifier.
NEW: EXIT PROCEDURE
The EXIT PROCEDURE statement declares a procedure that will be
executed on program termination.
CHANGED: EXTERNAL*
EXTERNAL* is now classified as a compatibility statement. It is
recommended that you use the new REQUEST statement instead.
NEW: INIT PROCEDURE
The INIT PROCEDURE statement declares a procedure that will be
executed at program startup.
NEW: REQUEST
REQUEST is a declaration statement that defines a list of module
identifiers to the linker.
NEW: Getsys.prg functions
Some of the functions in Getsys.prg have been made public so that you
can use them when implementing customized Get readers.
CHANGED: Getsys.prg
Getsys.prg now respects SET BELL ON when SET CONFIRM ON is used.
NEW: READFORMAT()
READFORMAT() is a function that accesses the current format file in
its internal code block representation.
NEW: READKILL()
READKILL() is a function that lets you control whether or not to
terminate the current READ.
NEW: READUPDATED()
READUPDATED() is intended primarily for creating new READ Layers.
CHANGED: GET:subscript
Get:subscript is now an assignable exported instance variable.
CHANGED: GET:display()
The Get:display() exported method now handles delimiters.
CHANGED: ERROR.CH
The following generic error codes have been added to ERROR.CH:
EG_DUPALIAS, EG_BADALIAS, EG_CYCLICAL.
NEW: ERRORNEW()
The ErrorNew() creates a new error object.
NEW: ERRORINHANDLER()
ERRORINHANDLER() is a new function that assures a clean and prompt
exit from within an application.
NEW: TBrowse:forceStable()
The new method forceStable() performs a full stabilization of the
TBrowse.
CHANGED: TBrowse error handling
Assigning invalid data to TBrowse and TBColumn instance variables
would not generate an error in version 5.01. Type checking during
instance variable assignment has been added in CA-Clipper 5.2 to trap
invalid values and produce a recoverable runtime error.
CHANGED: Compiler
The compiler now requires a minimum of 25 file handles. This can be
accomplished by adding the files statement "FILES=25" to the
CONFIG.SYS.
CA-Clipper now required DOS 3.3 or greater.
Include files (.ch) may be nested up to a maximum of 15 levels. This
limitation was present in previous releases but was not documented.
NEW: COMMAND.CH
Common.ch has been added to the CA-Clipper 5.2 release. Common.ch
incorporates many common/useful psuedo-functions and commands.
Std.ch is now reserved for CA-Clipper language implementation ONLY.
NEW: Compiler options
The following compiler options have been added to CA-Clipper 5.2:
/ES Exit Severity level 0
Default exit severity level.
/ES0 Exit Severity level 0
Same as /ES.
/ES1 Exit Severity level 1
Specifies an exit severity level of 1.
/ES2 Exit Severity level 2
Specifies an exit severity level of 2.
NEW: /DEBUG option in Linker
The /DEBUG option is now supported in the POSITIONAL syntax.
CHANGED: BASE50.???
All the base PLL related files have been changed to reflect the new
CA-Clipper version 5.2.
NEW: Error Messages
The following .RTLink error messages are now documented: ert0166,
eut0032.
CHANGED: DOS 5.0 PLL problem fixed
The fix for the DOS 5.0 PLL problem ("Illegal format in loadable
file") is included in the version of RTLINK for CA-Clipper.
NEW: General Debugger
Instance variable and method names are now displayed when inspecting
objects instantiated from CA-Clipper's predefined classes (GET,
TBROWSE, TBCOLUMN, and ERROR).
NEW: Run menu option
A "run to next routine" option has been added.
NEW: Monitor menu option
"All" has been added to the Monitor menu.
CHANGED: Watchpoint window
The delete <del> key can now be used to delete the currently
highlighted watch point.
CHANGED: View|Workarea screen
The default database driver of the selected workarea is now
displayed. Workarea and Index key are hilighted rather than
designated by "->". Multiple relations are now displayed in the work
area outline.
CHANGED: Online Help
Online help now appears in a separate file (CLD.HLP).
CHANGED: CLD.LIB
CLD.LIB must be linked as an OBJ file and not as a LIB file.
CHANGED: Command line parameters
You must place a space between the CA-Clipper application name and
the first CA-Clipper parameter when calling your routine from the
CLD.EXE command line.
CHANGED: BP command
An additional parameter, <nLineNum> has been added to the BP command.
CHANGED: Open mode in DBU
DBU now opens all databases SHARED by default
NEW: /e switch
The new optional command line parameter (/e) will cause DBU to open
file EXCLUSIVE to provide backward compatibility.
CHANGED: RL (Report Label) Utility
.FRM file changes
RL no longer lets you embed semicolons in report headings. This is
consistent with dBASE III+.
RL no longer allows the right margin setting to exceed the width of the report.
NEW: DBMCMD Error messages
DBCMD error messages occur in the database command set and are
unrelated to a particular driver. They occur as a result of command
usage rather than from a failure of the driver itself.
CHANGED: NTX
The NTX driver now allows you to create conditional indexes by
specifying a FOR condition. Create indexes using a record scope or
WHILE condition, allowing you to INDEX based on the order of another
index. Create both ascending and descending order indexes. Specify an
expression that is evaluated periodically during indexing in order to
display an index progress indicator.
NEW: MDX
The MDX replaceable database drivers is used to access dBASE IV
compatible index and multiple index (.mdx) file formats.
NEW: CDX
The CDX driver replaceable database provides access to FoxPro
compatible database index file formats (.cdx).
NEW: PDX
The PDX replaceable database driver provides access to Paradox tables
(.pdx).
NEW: NOVTERM
The NOVTERM driver provides faster execution when run on some
non-dedicated network server software.
NEW: PCBIOS
The PCBIOS driver provides direct BIOS calls rather than direct
screen writes for systems requiring this form of I/O.
NEW: ANSITERM
The ANSITERM driver provides ANSI terminal support for systems that require it.
NEW: Drivers Reference
CA-Clipper 5.2 provides many new and enhanced (changed) commands and
functions that can be used to access and manipulate databases and get
specific information about the replaceable database driver (RDD) in
use.
CHANGED: APPEND FROM command
The APPEND FROM command syntax has been changed to include the VIA
clause.
CHANGED: COPY TO command
The COPY TO command syntax has been changed to include the VIA
clause.
CHANGED: DBAPPEND() function
DBAPPEND() has been changed to accept the parameter, lReleaseRecLocks
which allows you to maintain multiple records locks during an append.
CHANGED: DBGOTO() function
DBGOTO() has been modified to accept a parameter other than record
number.
NEW: DBRLOCK() function
DBRLOCK() is a database function that locks the record identified by
the specified value <xIdentity>. In Xbase, <xIdentity> is the record
number.
NEW: DBRLOCKLIST() function
DBRLOCKLIST() is a database function that returns a one-dimensional
array that contains the identities of record locks active in the
selected work area.
NEW: DBRUNLOCK() function
DBRUNLOCK() is a database function that releases the lock on
<xIdentity> and removes it from the Lock List. If <xIdentity> is not
specified, all record locks are released.
CHANGED: DBSETINDEX()* function
DBSETINDEX() is a database function that adds the contents of an
Order Bag into the Order List of the current work area. DBSETINDEX()
is a compatibility command and therefore not recommended. It is
superseded by the ORDLISTADD() function.
NEW: DELETE TAG command
This command removes an Order from an Order Bag in the current or
specified work area.
CHANGED: GO command
The GO command has been enhanced to also work with data format other
than (.dbf). In a (.dbf), the parameter, identity, is the record
number. In other data formats, identity is the unique primary key
value.
CHANGED: INDEX command
The index on syntax has modified to include new clauses.
NEW: ORDBAGEXT() function
ORDBAGEXT() supersedes the INDEXEXT() and is not recommended.
NEW: ORDBAGNAME() function
ORDBAGNAME() is an Order management function that lets you access the
name of the Order Bag in which <cOrderName> resides.
NEW: ORDCREATE() function
ORDCREATE() is an Order management function that creates an Order in
the current work area.
NEW: ORDDESTROY() function
ORDDESTROY() is an Order management function that removes a specified
Order from multiple-Order Bags.
NEW: ORDFOR() function
ORDFOR() is an Order management function that returns the character
string, cForExp, that represents the logical FOR condition of the
Order.
NEW: ORDKEY() function
ORDKEY() is an Order management function that returns a character
expression that represents the key expression of the specified Order.
You may specify the Order by name or with a number that represents
its position in the Order List. Using the Order name is the
preferred method.
NEW: ORDLISTADD() function
ORDLISTADD() is an Order management function that adds the contents
of an Order Bag , or a single Order in an Order Bag, to the Order
List.
NEW: ORDLISTCLEAR() function
ORDLISTCLEAR() is an Order management function that removes all
Orders from the Order List for the current or aliased work area.
When you are done, the Order List is empty. This function supersedes
the function DBCLEARINDEX().
NEW: ORDLISTREBUILD() function
ORDLISTREBUILD() is an Order management function that rebuilds all
the orders in the current or aliased Order List.
NEW: ORDNAME() function
ORDNAME() is an Order management function that returns the name of
the specified Order in the current Order List.
NEW: ORDNUMBER() function
ORDNUMBER() is an Order management function that lets you determine
the position in the current Order List of the specified Order.
NEW: ORDSETFOCUS() function
ORDSETFOCUS() is an Order management function that returns the Order
Name of the previous controlling Order and optionally sets the focus
to an new Order.
NEW: RDDLIST() function
RDDLIST() is an RDD function that returns a one-dimensional array
that lists the available RDDs.
NEW: RDDNAME() function
RDDNAME() is an RDD function that returns a character string,
cRDDName, the name of the active RDD in the current or specified work
area.
NEW: RDDSETDEFAULT() function
RDDSETDEFAULT() is an RDD function that sets or returns the name of
the previous default RDD driver and, optionally, sets the current
driver to the new RDD driver specified by cNewDefaultRDD.
CHANGED: RECNO() function
The RECNO() function has been changed to work with other data
formats.
CHANGED: SEEK command
The SEEK command syntax has been changed to include the new clause,
SOFTSEEK.
CHANGED: SET INDEX command
The SET INDEX command syntax has been modified to work with other
data formats and includes the new clause, ADDITIVE.
CHANGED: SET ORDER command
The SET ORDER command has been changed to also work with data formats
other than the traditional Xbase().
CHANGED: Extend System API
The Extend System is now identified as the Extend API.
NEW: GT (General Terminal) API
The GT API is the level of system protocols that implements
CA-Clipper screen and keyboard commands and functions.
NEW: VM API
The VM API is a set of functions callable from extend functions that
allow direct communication with the VMM system.
NEW: RDD API
The database driver programming interface (RDD API) can be used by
third party developers to create new drivers, allowing CA-Clipper
applications compatibility with any database engine for which a
driver is created.