                Welcome to dBASE 5.0 for DOS
            -------------------------------------

This file contains important, late-breaking information about
dBASE 5.0 for DOS, including revisions to the documentation.

TABLE OF CONTENTS
-----------------
1. HOW TO CONTACT BORLAND
2. RELEASE NOTES
3. DOCUMENTATION UPDATE


1. HOW TO CONTACT BORLAND
-------------------------
The Borland Assist program offers a range of technical support
plans to fit the different needs of individuals, consultants,
large corporations, and developers. To receive help with this
product, send in the registration card and select the Borland
Assist plan which best suits your needs. North American customers
can register by phone 24 hours a day by calling 1-800-845-0147.
For additional details on these and other Borland services, see
the Borland Assist Support and Services Guide included with this
product.

2. RELEASE NOTES
----------------

Extended memory
---------------
If you don't have 3 MB of extended memory allocated for dBASE,
you may encounter an error message. For example, if you are using
smartdrv or if you have DOS loaded in high memory, not all of the
3MB of extended memory will be available for dBASE.

If necessary, you can reduce the amount of extended memory that
dBASE requires by editing the PhysMin statement in the
DBASEDOS.INI file as follows:

change

;PhysMin=3M

to

PhysMin=2M

Doing this reduces the amount of extended memory available to
dBASE and will decrease performance.

Caution: Do not reduce PhysMin to less than 2MB.


Using dot syntax with @...GET/READ, ACCEPT, and INPUT commands
--------------------------------------------------------------
Properties associated with an object should not be used as memory
variable input for the @...GET/READ, ACCEPT, and INPUT commands.
These properties are evaluated and set using dBASE 5.0 dot
syntax. Use of object properties with the @...GET/READ, ACCEPT,
and INPUT commands will result in a syntax error. To change or
display the value of a property using these commands,
store/retrieve the value to/from a memory variable.

Example:
mVar = MyForm.Text
@ 2, 2 GET mVar
READ
MyForm.Text = mVar


Using the SAVE TO and RESTORE FROM commands in dBASE 5.0
--------------------------------------------------------
The SAVE TO command used for saving memory variables to a file
does not include object properties in the .mem file. If the value
of an object property needs to be saved to a memory file, store
the value into a memory variable which can then be saved to a
memory file. The object property can then be retrieved by
RESTORING the memory variable and replacing the object's property
with the value of the memory variable.

Example:

mVar = MyForm.Text
SAVE TO mVarFile ALL LIKE mVar
...
RESTORE FROM mVarFile ADDITIVE
MyForm.Text = mVar


Using "#", "*", ";" symbols in a compile filelist
-------------------------------------------------------
When creating a file list for dBASE 5.0 compilation, do not
insert remark lines by using the symbols "#", "*", or ";". Using
such symbols will result in a "Invalid path or file name" message
when issuing a COMPILE @<filelist> command.


Sample DOS Form files
---------------------------
Many of the sample DOS Form files (DFM) located in the CUA
Samples directory may not be easily modified using the Form
Designer. These forms were created using memory variables and
database files that may not be active when attempting to edit the
form. You can easily run any of the sample form files from the
command window.

Example:

SET DIRE TO CUA_SAMPLES
DO ASCIIC


Selecting Program | Run with Arguments
--------------------------------------
Entering values into Program | Arguments applies to all programs
executed with Program | Run. If you select Program | Run while
undeclared variables still exist in Program | Arguments, a
"variable not found" error will occur. Remove or initialize
undeclared variables entered in Program | Arguments before
selecting Program | Run.


Using dBASE 5.0 with NOVELL NetWare 3.11
-----------------------------------------
Running dBASE 5.0 on a NOVELL 3.11 server may cause "Record in
use by another" when dBASE 5.0 attempts to place 500 or more
record locks on the server. The server default for MAXLOCKS is
500 and may return a message of "record lock threshold exceeded"
when this maximum is reached. If additional locks are requested
and network resources run low, the network may lock up. This
problem does not occur on a NOVEL 3.12 server.


3. DOCUMENTATION UPDATE
-----------------------
Following are changes in the "Language Reference:"

- p. 311 Note: SAVE TO doesn't save CUA objects

- p. 463 ColorEntryScrollBar property removed.

- p. 469 ColorListSelected property is a reserved word.

- p. 583 Save() method added. SaveFile property revised:

------------------------------//---------------------------------
Save()

A method that saves an editor object file to disk.
Syntax
<object reference>.Save()

Property of Object
EDITOR

Usage
If the DataSource and SaveFile values are blank, then Save()
displays the "Save As" dialog box to prompt the user for a new
file name. If the user selects a new file, the DataSource is
changed to the new file name and the file is written to disk.
If the file already exists, the user is prompted to Overwrite
regardless of SET SAFETY. If Overwrite is selected, the
DataSource is changed and the file written. If Cancel is selected
from the Overwrite dialog or no file is selected from the Save As
dialog box, then the DataSource is untouched and the file is not
saved. The Modified flag is untouched.

Example
In the following example, the untitled editor in the form is
saved to a file named NOTES.TXT when the editor contents are
changed and the user clicks the Save pushbutton.

DEFINE FORM fName FROM 0,0 TO 15, 75
DEFINE EDITOR eEdit of fName FROM 1,1 TO 6, 50
DEFINE PUSHBUTTON pbSave OF fName AT 8, 20 ;
     PROPERTY ;
     Text  "&Save", ;
     Width  10, ;
     OnClick  SaveEdit, ;
     GrabFocus  .F.

? fName.READMODAL()
lVoid = fName.RELEASE()
RETURN

PROCEDURE SaveEdit
     IF Form.eEdit.Modified()
          Form.eEdit.SaveFile = "Notes.txt"
          lVoid = Form.eEdit.SAVE()
     ENDIF
RETURN

See also
SaveFile

------------------------------//---------------------------------
SaveFile
Instructs the Save() method to save the Editor buffer with a file
name different from the DataSource.

Syntax
<object reference>.SaveFile <expL | expC>

Default
The default for SaveFile is "".

Property of Object
EDITOR

Usage
If the Datasource file name is different from the SaveFile file
name, the Save() method saves the editor buffer with the SaveFile
name, resets the DataSource to the SaveFile name, and then sets
the value of SaveFile to "".
If the Datasource is set and SaveFile is "", the Save() method
saves using the DataSource value and leaves SaveFile as "".
If DataSource is not set (an Untitled editor) and SaveFile is set
to a file name, the Save() method saves the Untitled editor to
the SaveFile name value. Datasource is set to the SaveFile value
and then SaveFile is set to "" .
Attempting to set SaveFile for a MEMO datasource causes a
"Property not supported in this context" error message.
You can use the SaveFile property in the DEFINE statement. Use
dot reference notation to do the following:
- Set the value of the property.
- Query the property's value.
- Assign the property's return value to a variable.

See also
Close(), DEFINE EDITOR, Release(), Save()

