CA-dBFast
A dBase-compatible application development system
Release Notes
CA-dBFast 2.0 - September 1995
Contents
This document contains information on the following topics:
Read Me First!
Significant Changes Between 1.7 and 2.0
Installing CA-dBFast 2.0 Under Alternate Program Managers
Installing under Windows 3.0
Instructions for the OEM2ANSI Utility
Documentation Updates
.INI File Updates
Distributing CA-dBFast Applications
Samples
Read Me First!
You MUST recompile all of your programs with this version before you run them. The .OVR file format has been changed and is not compatible with previous builds.
When using CA-dBFast on a LAN↗, you generally want all CA-dBFast executable files (*.EXE, *.OVR, etc.) to be "read only," so you should install them as READ ONLY SHAREABLE.
The Visual Designer of CA-dBFast and CA-RET share the same database files and as such these files have to be opened in shareable mode. Therefore, DOS utility SHARE.EXE must be installed when sharing files between Visual Designer and CA-RET. (Note that users are responsible for appropriate file locking, etc.). For example, the ROLODEX tutorial in the Getting Started Guide needs the following modification in order to work properly with CA-RET: After the CA-dBFast code has been generated by the Visual Designer, simply add the following two lines of code to the beginning of MAIN.PRG: SET EXCLUSIVE OFF and SET FIELD LOCK ON.
The maximum string space (MEMSIZE) has been increased to 61440. The default value is now 32768.
The number of fields in a database has been increased to 1024 from 128.
Maximum length of a record has been increased to 32767 from 4000.
The length of the command line (from Command mode) has been increased to 1024 from 320.
New Commands and Functions have been added. They are listed in the New Commands and Functions section.
Multi line and in-line commenting is now supported by using /* and */.
Example: @ 10,10 /* co-ordinates*/ say "I love CA-dBFast"
/* You can do it this way also */ @ 10,10 say "I love CA-dBFast"Preprocessor directives can be used in your programs. They are:
#INCLUDE
#IFDEF
#IFNDEF
#ELSE
#ENDIFNow include files can have any name and extension when used with #INCLUDE
Example: #INCLUDE "myfile.dbh"FONT option has been added to CREATE CONTROL ( LISTBOX, CHECKBOX,
COMBOBOX, GROUPBOX, EDITBOX and RADIOBUTTON ) and CREATE BUTTON.
Example:
SET FONT 5 TO 'Arial', 12
CREATE CONTROL GROUPBOX 'Group01' at 2,2 SIZE 20,20 TEXT 'Group' FONT 5When an APPEND BLANK command is issued in a multiuser environment the appended record is now flushed to disk immediately. The appended record remains locked by the user who issued the APPEND BLANK command until the record pointer is moved.
When appending records in a multiuser environment, dBFast's record and file locking protocol for both database and index files now corresponds to that of CA-Clipper↗.
SET FIELD LOCK ON command will no longer let more than one user update the same record in a multiuser environment. This means that a user can only lock at record level, NOT at field level. However, SET EXCLUSIVE OFF, SET FIELD LOCK ON combination can still be used to let CA-dBFast do the locking for you.
Can now macro the application parameter of the TALK TO command.
The debugger will now show the primary index key that is open on a database.
Significant Changes Between 1.7 and 2.0
Record and file locking in CA-dBFast is now compatible with CA-Clipper. DO NOT attempt to run CA-dBFast 2.0 with a previous version of CA-dBFast or with any other xBase↗ product that is not compatible with CA-Clipper.
You will corrupt your data and index files if you try to use CA-dBFast 2.0 with a product that is not compatible!
You must recompile all programs written with previous versions. CA-dBFast no longer creates .FST files but now creates .OVR files. While they are similar, there are significant differences and the two cannot be mixed.
Installing CA-dBFast 2.0 Under Alternate Program Managers
The Computer Associates Installer is designed to operate with the Windows Program Manager, version 3.0 or 3.1. Use of an alternate Program Manager —such as Norton Desktop, InCtrl, HP Dashboard, etc.— will result in an incomplete installation.
Using an alternate Program Manager will correctly create the required directories and copy the files from the floppy installation disks to the hard drive. However, the installation will fail when attempting to use the alternate Program Manager to create the CA-dBFast program group and icons.
To rectify this situation, you may proceed by either (1) restoring the Program Manager to PROGMAN.EXE and then reinstalling CA-dBFast 2.0, or (2) creating the program group and icons using your alternate Program Manager.
Note that CA-dBFast 2.0 will normally install icons in the CA-dBFast program group for the following files: DBFAST.EXE, CARET.EXE, README.WRI (the "readme" file), CAPTURE.EXE, and OEM2ANSI.EXE (the OEM2ANSI utility). These files can be found in the CA-dBFast 2.0 directory.
Installing under Windows 3.0
When installing CA-dBFast under Microsoft Windows Release 3.0, SHARE must be disabled prior to installation.
Instructions for the OEM2ANSI Utility
The OEM2ANSI utility is designed to convert your data files (both .DBF and .DBT) from either the OEM↗ character set to the ANSi↗ character set, or the reverse (from ANSI to OEM).
Note: OEM is the character set used by DOS↗ programs, such as CA-Clipper or dBase III+↗ or IV↗.
To start the OEM2ANSI utility, click on the OEM2ANSI icon installed in the CA-dBFast program group by the CA-dBFast installation program. Doing so displays a common file selection dialog box. From this dialog box, you can select the data file (.DBF) you wish to convert, as well as how the conversion is to be performed (that is, from OEM to ANSI or ANSI to OEM).
The dialog box contains a check box labeled "OEM Source" that controls how the conversion will be performed. If the "OEM Source" check box is checked, the selected data file is considered to be in the OEM format and will be converted to ANSI. If it is not checked, the data file will be converted from ANSI to OEM.
As the file is converted, the progress is displayed on the screen as a percentage of completion. If there are no records in the file to convert, a message box is displayed indicating such a condition.
Once the file is converted, the file selection dialog box is redisplayed, allowing you to optionally select another file to convert.
Documentation Updates
This section contains update information that is divided into the following categories:
The Workbench
The Visual Designer
Command and Function Updates
New Commands and Functions
Miscellaneous
THE WORKBENCH
The Browse Data Dialog Box
A check box has been added to the Browse Data dialog box (displayed by choosing the Database Browse Data command in the Workbench).
It allows you to optionally set exclusive access for a data file when you open it for BROWSEing — please see the online HELP system for the most current documentation on the Database Browse Data command.
The New Structure and Modify Structure Dialog Boxes
A command button named Done has been added to these dialog boxes to accommodate adding fields continuously. (These dialog boxes are displayed by choosing the Structure New or the Structure Modify command from the Database menu in the Workbench.)
By default, when you are creating a new structure or when you select the Add command button, you are placed in "add mode." Previously, after defining a single field, you immediately exited add mode. To add another field, you had to click the Add button to go back into add mode.
The new Done button, however, allows you to stay in add mode and define multiple fields. Only when you click Done do you exit add mode.
Keyboard Navigation and BROWSE Controls
For windows that contain BROWSE controls, keyboard navigation support has been enhanced to include getting into and out of the BROWSE control with the keyboard.
If a window has a mix of standard controls and a BROWSE control, the Tab key will navigate among the standard controls and bypass the BROWSE control. To enter the BROWSE control, you must either select it with the mouse, or use Ctrl+Tab from the standard control directly preceding the BROWSE control.
Once in the BROWSE control, the Tab key will navigate from field to field. To exit the BROWSE control, press Ctrl+Tab — focus will change to the standard control directly following the BROWSE control.
Note: When browsing a data file, pressing the Shift+Home or Shift+End key combinations moves the cursor to the first and last character in the current field, respectively.
THE VISUAL DESIGNER
Calling Design Forms in the Visual Designer
You cannot establish a link from the Menu Command, Command Button, or Picture Button Details dialog box to a design form that is already on the Design Tree. The reason for this is that no single form can be used twice in a design. (You can, however, use the Copy As command to put a replica of a form in the Warehouse under a different name. Then, you can create a link to this new form.)
The Existing Forms list box in the Menu Command, Command Button, or Picture Button Details dialog boxes is provided for viewing purposes only. You cannot highlight and select the name of a design form from this list with your mouse. Rather, you must type in the name in the Called Form Name text box.
Main Window Design Forms
The window object in Main Window design forms does not have the following properties: Control Box, Maximize Icon, Minimize Icon, Vertical Scroll Bar, Horizontal Scroll Bar, and Resizable Border.
Design Tree Icons
The icons that appear in the Design Tree have been redesigned and will not match what you see in your hardcopy documentation. (Note that these changes do not affect functionality.)
Saving Application Designs
If you have made changes to an application design and then choose the File Exit command in the Visual Designer main window without first choosing File Save or Save As, CA-dBFast will prompt you to save the changes only if they were made to the design forms in the application design (not if the changes were made to the data dictionary).
Command and Function Updates
The following lists the commands and functions (in alphabetical order) that have been updated since the documentation was printed:
& (Macro Operator)
@...GET...COMBO
@...GET...LISTBOX
AFILL()
APPEND BLANK
BROWSE
CREATE CONTROL BROWSE
CREATE CONTROL CHECKBOX
CREATE CONTROL COMBO
CREATE CONTROL GROUPBOX
CREATE CONTROL LISTBOX
CREATE CONTROL RADIOBUTTON
CREATE WINDOW
DOSERROR()
ERRPRG()
FGETS()
FONTPARMS()
FOPEN()
HIDE WINDOW
INDEX ON
KEYSTROKES()
MEMOTRAN()
MEMOLINE()
MLCOUNT()
MOD()
PROCNAME()
PUTLONG()
READ
SELECT CONTROL
SET BELL
SET CARRY
SET COLOR TO
SET CURSOR TO
SET DEFAULT TXT
SET FIELD LOCK
SET FILTER TO
SET GRAPHIC INPUT TO
SET LISTBOX TO
SET PRINTER TO
SET RELATION TO
TALK TO
WARNING()
WINDOW()
New Commands and Functions
The following are new to CA-dBFast since the documentation was printed and are documented in the online HELP system. They are listed in alphabetical order:
Preprocessor directives:
#INCLUDE
#IFDEF / #IFNDEF
#ELSE
#ENDIFDBFHANDLE()
FEOF()
GETENV()
MENUSTR()
POSTEVENT()
SUNLOCK()
MISCELLANEOUS
The BANKER Examples
In Chapter 4 of the CA-dBFast User Guide, you are instructed on page 4-14 to use the Database Browse Data command to BROWSE the BANKER.DBF file you created in a previous section. However, you must select the BANKER2.DBF file that is stored in the SAMPLES/MISC directory, not the BANKER.DBF file you created.
(BANKER2.DBF is an exact replica of the BANKER.DBF file you created, except that a blank record has been appended.)
Similarly, on pages 4-20 and 4-23, you should type the text USE BANKER2 in the Command dialog box (not BANKER as documented). Note also that the screen shots shown in these sections are not accurate.
On pages 9-2 and 9-11 of Chapter 9 of the CA-dBFast User Guide, both sample programs (BANKER.PRG and BANKER2.PRG) incorrectly contain the USE BANKER statement. This statement should read USE BANKER2 (which agrees with the sample programs on disk).
All references to the BANKER.DBF data file in Chapter 9 of the CA-dBFast User Guide should really be to BANKER2.DBF.
The POINT Keyword
In the Language Guide, the description of the POINT keyword states that specifying POINT causes CA-dBFast to interpret the values given in the row,col arguments as pixels. This is true — however, specifying POINT also causes CA-dBFast to interpret ALL screen placement values given in a command/function as pixels (including, for example, the coordinates specified by a SIZE clause).
User Definable ID Numbers
The range for user definable ID numbers has changed from 1 - 1200 to 500 - 2000. This applies to all commands and functions that use ID numbers. Existing code that used the range of 1 - 500 must be changed.
CREATE CONTROL BROWSE
The ESC key will no longer close the CREATE CONTROL BROWSE. If ESC is pressed while the CREATE CONTROL BROWSE has focus, an EVENT() of 1 and LASTKEY() of 27 will still be issued. BROWSE will still close due to the ESC, since it is a modal window.
New Commands and Functions
The following are new to CA-dBFast since the documentation was printed and are NOT documented in the online HELP system. They are listed in alphabetical order:
DIRMAKE()
Syntax: DIRMAKE(expC)
expC: The new directory name. Include full path if the directory is to be created somewhere other than the current directory.
DIRMAKE() will return 0 if success, -1 if failure. If failure, check DOSERROR() for error number.
Returns: Always returns .T.
GAUGE()
Syntax: GAUGE(expC, expN1, expN2) → .T.
expC: The text string at the top of the fuel gauge.
expN1: The current value for the fuel gauge.
expN2: The maximum value for the gauge.
Returns: Always returns .T.
Usage:
To initialize the gauge: Set expC to the desired text, and expN2 to the maximum value used.
To update the gauge: Set expN1 to desired value
To close the gauge: Set expN1 and expN2 to zero.
See MISC\GAUGE.PRG for an example.
INI File Updates
Appendix D in the CA-dBFast User Guide documents several parameters in the DBFAST.INI file (stored in your Windows directory). Here are a few updates:
WTYPE
Use the WTYPE parameter to determine the initial type of the main application window for linked files that have a file extension of .EXE. This option affects only the stand-alone executable files; it does not affect the CA dBFast application window.
To specify this option, enter WTYPE = # (where # is a number that represents the desired window type) in the .INI file of the stand-alone executable file. Note: This entry must be under the [Global Parms] section.
The different options available for windows are described in the SET WINDOW TYPE TO command.
WINDOWX
WINDOWY
WINDOWCX
WINDOWCY
Use these parameters to determine the initial size of the main application window in pixel coordinates for linked files that have a file extension of .EXE. This option affects the stand-alone executable files; it also affects the CA dBFast application window if used in the DBFAST.INI.
WINDOWX and WINDOWY are for the upper left coordinate. WINDOWCX and WINDOWCY are for the lower right coordinate.
To specify these options, enter, for example, WINDOWX = # (where # is a number that represents the desired pixel coordinate) in the .INI file of the stand-alone executable file.
Note: This entry must be under the [Preferences] section. Also, the WBEGIN= parameter used under the [Global Parms] section will override these settings.
The following settings must be under the [Global Parms] section to be in effect:
FILES, MAXCVAR, MAXPROC, MAXPROGS, MEMVAR and MEMSIZE.
DFTDIR
The DFTDIR parameter tells CA-dBFast where to look for the template files used by the Visual Designer, and is automatically inserted in the DBFAST.INI file when you install CA-dBFast. If you ever change the location of the CA-dBFast directory from its original path specification, you should update this parameter.
Distributing CA-dBFast Applications
After compiling, testing, and debugging your CA-dBFast application, you will want to distribute it to your end users. To run the application, your end users will need a copy of the CA-dBFast Runtime system. In addition, if your CA-dBFast application uses CA-RET, you will also need to supply end users with the CA-RET Runtime system.
As explained in Appendix C of the CA-dBFast User Guide, you can ship your CA-dBFast application in two ways:
Create a stand-alone .EXE file from your application’s main .OVR file and supply the end user with the .EXE and all of its associated .OVR files.
To create an .EXE, select the File Link command in the CA-dBFast Workbench and specify the name of your application’s main .OVR file. CA-dBFast then creates a copy of the CA-dBFast DBFNRUN.EXE file under the name of the selected .OVR file.
Using this method does not require that you install the CA-dBFast Runtime files on your end users’ machines. However, if the application uses CA-RET, you must supply the CA-RET Runtime system.
You can either copy all required CA-RET Runtime files to the appropriate directories on your end users’ machines, or use the Runtime Installer provided by CA-dBFast to place all required files appropriately. See the sections entitled "Installing the CA-dBFast and CA-RET Runtime Systems" and "Required Runtime Files" below for details.
Tip: If you use the Runtime Installer, you may want to delete the extra DBFNRUN.EXE file it creates, since you have already created a copy of it using the File Link command.
Ship all of the .OVR files with a copy of the CA-dBFast Runtime system.
Using this method requires that you install both the CA-dBFast and CA-RET Runtime files on your end users’ machines. See the sections entitled "Installing the CA-dBFast and CA-RET Runtime Systems" and "Required Runtime Files" below for details.
Note: In this case, you should not delete any installed files.
Installing the CA-dBFast and CA-RET Runtime Systems
Both the CA-dBFast 2.0 and CA-RET Runtime systems are supplied on a diskette labeled "Runtime Installation". These files are installed on your own development computer when you install the full CA-dBFast 2.0 product, but must be installed separately on the end user computers.
To install the CA-dBFast Runtime system to an end user’s computer:
Insert the Runtime Installation diskette in drive A (or B).
From the Windows Program Manager, select the File Run command.
Type A:\INSTALL (or B:\INSTALL).
When prompted, specify the directory to which the files should be installed.
All required Runtime files will be installed in the specified directory. (The CA-RET SQL driver files are installed in the Windows directory.)
You should also place a copy of the required application files in that directory. Your application may then be started using standard Windows techniques.
Required Runtime Files
Appendix C of the CA-dBFast User Guide describes what CA-dBFast Runtime files are required when distributing a CA-dBFast application that does not use CA-RET. They are summarized below:
File Description Directory
myapp.EXE or CA-dBFast Runtime application
DBFNRUN.EXE
ERR.DAT CA-dBFast Error File application
S$EXT.DAT CA-dBFast Ext File application
DBFRSC.DLL CA-dBFast Resource File application
COMMDLG.DLL Common Dialogs application
WINHELP.EXE Help for Windows 3.0 application
When distributing a CA-dBFast application that uses CA-RET, you must supply the following
CA-RET Runtime files to your end users:
File Description Directory
CARETRUN.EXE CA-RET Runtime application
CARET$.DAT CA-RET Data File application
VRWLABEL.DAT Label Templates application
CARET.DOT WinWord DLL Template application
QELIB.DLL SQL Driver Windows
QEUTIL.DLL SQL Driver Windows
QLDBF.DLL dBASE Driver Windows
RETLOGO.DLL CA-RET Logo application
TOOLHELP.DLL ToolHelp DLL application
DDEML.DLL DDE library application
Note: The other files found on the remaining disk supplied with CA-dBFast 2.0 are required to develop your applications. They are not needed to run the programs you create and copies should not be delivered to end users.
Samples
If you choose to include samples during the Install, CA-dBFast copies all sample files to their own subdirectories under a main SAMPLES subdirectory. (The SAMPLES subdirectory is automatically created below the directory where you installed CA-dBFast.)
The directories are as follows; the sample files are also described below.
/CARET Contains the sample .RET reports referenced in your CA-RET documentation.
/TUTOR Contains a data dictionary and some bitmap files that you can use to create the tutorial presented in the CA-dBFast Getting Started guide.
/IVAD IVAD is a sample design for use with the Visual Designer. It is described in the Using the Visual Designer Guide.
/POKER POKER is a sample game of 5 card draw.
/VIDEO VIDEO is a sample design for use with the Visual Designer. VIDEO is a video store rental and video tape inventory system.
/MISC MISC contains various sample programs and data files.
NEWCUST1.PRG
NEWCUST2.PRG
These programs demonstrate how you can migrate an xBase program into the Windows environment using CA-dBFast and begin to add Windows controls to it. They are described in the Getting Started guide.
BANKER.DBF
BANKER.OVRBANKER.PRG
CUSTOMER.DBFBANKER2.PRG
BANKER2.DBF
BANKER2.NDX
BANKER2.OVR
The programs BANKER and BANKER2 are examples of writing xBase programs in CA-dBFast. (See the Miscellaneous section in the Documentation Updates topic earlier in this document for updated instructions on using these sample programs.)
COLORS.PRG
COLORS.PRG is a program that will display a color table and the numbers to use to select the colors.BUGGY.PRG
BUGGY.PRG is a sample program with a bug in it to be used as a demo for the Debugger.FIRST.PRG
FIRST.PRG can be used as a starting point for programs that have multiple, non-modal windows.TNAME.DBF
TNAME.DBT
GENERIC.PRG
GENERIC.PRG is a sample name and address program.GRAPHS.PRG
GRAPHS.PRG displays and prints samples of the three different kinds of graphs that can be produced with CA-dBFast.LOOP1.PRG
LOOP2.PRG
LOOP1 and LOOP2 are programs that can be used with the Debugger.WINDOW.PRG
WINDOW.PRG displays samples of windows and the window types used to create them.EXAMINE.INC
EXAMINE.PRG
EXAMINE.PRG is a source code examiner that will show most of the source code differences between CA-dBFast and CA-Clipper. It is useful when porting programs from CA-Clipper.READ.ME
SAMPLE.C
SAMPLE.DEF
DLLTEST.PRG
SAMPLE.DLL
SAMPLE.C and SAMPLE.DEF are the sources for SAMPLE.DLL. DLLTEST.PRG is a sample program that calls SAMPLE.DLL to illustrate how to call DLLs using CA-dBFast.DDECLIEN.PRG
DDESERVE.PRG
DDESAMP.DBF A sample set of programs that show CA-dBFast acting as both DDE↗ client and server. Read the file DDESAMP.WRI for more information.CASCADE.PRG
Sample program to create a menu system with cascading menus and also add a menu system to any window.CURSCORD.PRG
Example of realtime retrieval of cursor coordinates.DBLCLICK.PRG
Sample code which demonstrates a good way to handle a double-click in listboxes.DDEPRGMN.PRG
Using CA-dBFast to talk to Program Manager to create a program group and icon.EDITBOX.PRG
Sample program to allow extra attributes that can be set for CREATE CONTROL EDITBOX :
Determine if the contents have changed
Turn the caret on/off
Make the edit box a password entry box
Make the editbox READONLY
Undo changes made to editbox
FREEMEM.PRG
Find the amount of free resources from Windows.GETVER.PRG
Sample program to get the version number of both Windows and DOS.GTWINFLG.PRG
Sample program to get information about the Windows system and memory configuratION.LISTBOX.PRG
Sample program to get extra functions that can be applied to a CREATE CONTROL LISTBOX.RUNMIN.PRG
Sample program which demonstartes the equivalent of WRUN, with extra parameters for starting the app maximized or minimized.SCRL.PRG
Example of how to override the default range of 0-1000 of a CREATE CONTROL SCROLLBAR.SCROLL.INC
SCROLL.PRG
Scroll bar demo program.SHOWWIN.PRG
Sample program which demonstrates, under program control :
Minimize, maximize, restore a window
Arrange the icons, and determine if a window is minimized or maximized
Bring a child window to the top
Move and resize a window
WINPOS.PRG
Obtain the position and size of the current window.AVIVIDEO.PRG
Example of using the MCI device drivers.DEFBUTT.PRG
Example of how to change the default state of a button.DIRMAKE.PRG
Example of how to use the DIRMAKE() function.GAUGE.PRG
Example of how to use the GAUGE() function.FONT.PRG
Example of how to use the FONT parameter on CREATE CONTROL EDITBOX and CREATE BUTTON.
Previous Release Notes
Release Notes CA-dBFast 1.0 - November, 1992
[READ NOTES]