records in a set of Scoped Records
STACK................Display the callstack and optionally edit the source
SUM..................Sum numeric fields in selected database
TAG..................Build or add to a Record Tag Array
TAG CLEAR............Clear the Record Tag Array
UNLOCK...............Unlock the current record
USE..................Open a database file in a work area
USER EDIT............Maintain the DCUSERS.DBF User Database
UTIL.................A menu of database utilities
WHERE PUBLIC.........List .OBJ(s) that contain public function
WHERE SOURCE.........Display a list of .OBJ/.PRG files containing PUBLIC proc
ZAP..................Zap the database
DBU..................A Gui Database Management Utility
DCSTD.CH
The "Standard" command set
Description:
The DCSTD.CH file is an "include" file that is used to
pre-process miscellaneous commands and dot-prompt commands.
This is the "standard" command set that is basically equivalent
to Alaska's STD.CH. This command set overloads some commands
in STD.CH to provide extra functionality, such as progress
bars in database commands.
DCSTD.CH is automatically loaded the first time a command is
entered at the dot-prompt. This file must exist in your
INCLUDE=<þincludeþ> path or an error window will be displayed
the first time you try to enter a command.
Source/Library:
DCSTD.CH
See Also:
DC_Dot()
AEDIT
Edit an Array
Syntax:
AEDIT < array >
Arguments:
< array > is the name of any multidimensional array or subarray to
edit. If this command is used at the dot-prompt, the array
must be a private or public variable.
Description:
AEDIT is a full-screen (text-mode) array editor that allows
editing of any type of multidimensional array.
Examples:
. aDir := directory()
. AEDIT aDir
Source/Library:
DCSTD.CH
See Also:
AVIEW
AEVAL
Evaluate an Array
Syntax:
AEVAL < array > [,< parameter >] [DO] < xpr list > ;
[START < elem >] [COUNT < elems >]
Arguments:
< array > is the name of the array to evaluate.
< parameter > is an optional parameter used by expressions in
the expression list.
< xpr list > is a list of expressions (separated by commas) to
evaluate for each array element.
START < elem > is the starting element number.
COUNT < elems > is the number of elements to evaluate.
Description:
AEVAL functions identically to the AEVAL() function except the
expressions do not need to be code blocks.
Examples:
. DIR := DIRECTORY()
. AEVAL DIR QOUT(DIR[1],DIR[2]) START 10 COUNT 5
Source/Library:
DCSTD.CH
APPEND
Append and Edit a new record
Syntax:
APPEND
Arguments:
None.
Description:
APPEND adds a new record to the currently selected database and
then invokes the full-screen (text-mode) editor.
Examples:
. USE COLLECT
. APPEND
Source/Library:
DCSTD.CH
See Also:
APPEND FROM
APPEND BLANK
Append a Blank record
Syntax:
APPEND BLANK
Arguments:
None.
Description:
APPEND BLANK will append a blank record to the currently
selected database. This functions identical to the Xbase++
APPEND BLANK command except it automatically locks and unlocks
the record.
Examples:
. USE COLLECT
. APPEND BLANK
. EDIT
Source/Library:
DCSTD.CH
See Also:
APPEND
APPEND FROM
Append records from another file
Syntax:
APPEND FROM < file > [ < args > ]
Arguments:
See the Xbase++ documentation for details about < args >.
Description:
APPEND FROM works identical to the Xbase++ APPEND FROM command
except a progress odometer will display the number of records
scanned and the number of records that were actually appended
if using the FROM option.
Examples:
. USE COLLECT
. APPEND FROM JUNK
Source/Library:
DCSTD.CH
See Also:
APPEND
APPEND VIRTUAL
Append Virtual Record to selected database
Syntax:
APPEND VIRTUAL
Arguments:
None
Description:
APPEND VIRTUAL will append the virtual record to the currently
selected database. The virtual record must first exist in the
form of a *.DCV file originally created by the SAVE VIRTUAL
command or DC_VirtSave() function.
Examples:
. USE COLLECT
. GO 10
. SAVE VIRTUAL
. APPEND VIRTUAL
Source/Library:
DCSTD.CH
AVERAGE
Average numeric fields in selected database
Syntax:
AVERAGE [ < args > ]
Arguments:
See the Xbase++ documentation for details about < args >.
Description:
AVERAGE is used to average numeric fields in the currently
selected database based on a set of conditions. This command
functions identical to the Xbase++ AVERAGE command with the
exception that a progress bar is displayed during the averaging
and the number of records actually averaged is displayed.
If no arguments are given, then AVERAGE uses the DC_Average()
function to display a GUI dialog for selecting fields and
options.
Examples:
. USE COLLECT
. AVERAGE orig_price TO nPrice
. AVERAGE
Source/Library:
DCSTD.CH
See Also:
dc_average()
AVIEW
A Tree style array/object browser
Syntax:
AVIEW aArray | oObject [EXPAND]
Arguments:
< aArray > is any type of array.
< oObject > is any type of object.
EXPAND will expand all elements in the tree.
Returns:
NIL.
Description:
AVIEW is used to browse multidimensional arrays and/or objects
using a Tree-View style browser.
The array can be any type of array with any dimensions and may
contain any type of data. When expanding the array tree, the
user has the option of opening a new window to display the
contents of the sub-tree. When expanding an object, the user
has the option of displaying the properties of the object
using DC_InspectObject().
Examples:
. aDir := directory()
. AVIEW aDir EXPAND
Source/Library:
DCSTD.CH
See Also:
dc_arrayview()
dc_inspectobject()
BATCH
Process a Batch file with Dot-Prompt commands
Syntax:
BATCH [NEW] < batch file > ;
[ < param1 > [ < param2 > [ < param3 > [
< param4 > [ < param5 > ]]]]]
Arguments:
< batch file > is the name of the batch file to execute. If no
extension is given, then .DCB is assumed. If no directory
path is included, then eXPress++ will search the current
directory followed by the directory established in the SET
DCLIP=< directory > environment command.
NEW will run the batch file in a new thread.
< param1 > - < param5 > are arguments which are replaced in
the
batch file by %1 - %5 in the same manner as replacement is
accomplished in DOS .BAT files.
Description:
BATCH execute all commands in a .DCB batch file in sequential
order. A batch file can include any commands which can be
entered at the dot-prompt and executed by the eXPress++
interpreter other than structural commands, like DO WHILE, DO CASE
IF..ENDIF or FOR..NEXT. All commands in DCSTD.CH, DCDIALOG.CH,
or DCCUSTOM.CH may be used in batch files.
Notes:
DC_Dot() will automatically execute an AUTOEXEC.DCB batch file
found in the directory containing the executable program or
the or the directory named by the dos SET DCLIP=<þdirectoryþ>
environment setting.
Examples:
. BATCH OUTPUT MYFILE.PRG PRN
// start up the same browse in two different threads
. BATCH NEW BROWSE
. BATCH NEW BROWSE
Source/Library:
DCSTD.CH
See Also:
DC_Batch()
DC_BatchNewThread()
BLANK
Blank record(s) in currently selecte database
Syntax:
BLANK [FOR < lCondition] ;
[WHILE < lCondition >] ;
[NEXT < nRecords >] ;
[RECORD < nRecNo >] ;
[REST] ;
[ALL]
Arguments:
See the Xbase++ documentation for information on how to use the
FOR, WHILE, NEXT, ALL, REST, and RECORD clauses.
If no arguments are used, only the current record will be
blanked.
Description:
BLANK is used to blank out all fields in selected records
of the current work area.
Examples:
. BLANK FOR deleted()
. BLANK FOR user_id='GOOFY'
. BLANK
Source/Library:
DCSTD.CH
See Also:
dc_blank()
BROWSE
A text-base Database browsing system
Syntax:
BROWSE [PROTECT] ;
[EDIT] ;
[CLEAR [ALL]] ;
[FIELDS < fields,... >] ;
[HEADERS < headers,... >] ;
[DEFAULT] ;
[RESTORE [FROM] < cBrowName >]
[OVERLAY]
Arguments:
EDIT will re-paint all previously created Editing Screens
that were created with the EDIT command.
FIELDS < fields > is a list of fields to browse. If no field
list is passed, then all fields will be included in the
browse.
HEADERS < headers > is a list of headers that matches the list
of fields to browse. If no header list is passed, then the
headers will default to the field names.
CLEAR will clear any previously configured browse window for
the current work area and create a browse window with the
default configuration using the full screen and all fields.
CLEAR ALL will clear all browse windows for all work areas.
PROTECT will protect data from being modified by the user.
DEFAULT will display a default browse even if there is a
browse in the Browse dictionary that matches the alias name
of the browse. A default browse is a one that displays all
fields.
RESTORE FROM < cBrowName > will restore a specified browse
from the Browse dictionary. < cBrowName > is the name of the
browse to restore. This stored browse configuration much
match the field names of the current database or an error
will occur.
OVERLAY will display the browse screen over any existing
screens. If this clause is not used, then the screen will
be cleared first.
Description:
BROWSE is a multi-windowing database manager that utilizes a
browse-style menu for viewing, printing or editing databases.
BROWSE maintains a multi-dimensional array of information for
all open work areas which is remembered even after the browse
is exited. When the BROWSE command is used again in any work
area which was previously browsed, the browse configuration
(including field pointers, column configuration, etc.) will
automatically be restored.
BROWSE is a complete DBMS system that supports a set of pop-up
menus for selection of files, viewing options, editing options,
printing options, search options, and utilities.
BROWSE supports importing/exporting, cut and paste and a
built-in support for replaceable database drivers (DBE's).
Databases of different types may be opened in different windows
and macros can be created to easily move data between fields
and records from any database window.
Examples:
. USE CUSTOMER
. BROWSE CUST_NAME, BALANCE
Source/Library:
DCSTD.CH
See Also:
dc_browsedb()
CALC
A popup, full-function calculator
Syntax:
CALC
Arguments:
None.
Description:
CALC displays a GUI calculator.
Examples:
. CALC
Source/Library:
DCSTD.CH
See Also:
dc_popcalc()
CD | CHDIR
Change system directory
Syntax:
CD | CHDIR < dir >
Arguments:
< dir > is the drive and directory to select.
Returns:
.
Description:
CD is used to select a new system drive and directory.
Examples:
. C:
. CD \express\lib
. CD ..\sample
Source/Library:
DCSTD.CH
See Also:
dc_chdir()
CHR
Display an ASCII Character Chart
Syntax:
CHR
Arguments:
None.
Description:
CHR will display a chart of the 256 ASCII text-mode characters
in a new CRT window.
Examples:
. CHR
Source/Library:
DCSTD.CH
See Also:
dc_chrsel()
CLEAR SCOPE
Clear scoping values for the current work area
Syntax:
CLEAR SCOPE
Arguments:
None.
Description:
CLEAR SCOPE is used to clear both the SCOPETOP and SCOPEBOTTOM
"scoping range" values that were previously set by SET SCOPE or
DC_SetScope().
Notes:
SET SCOPE does not establish the scoping range at the
DBE-layer level, but instead is just a handy way of storing
the SCOPE TOP and SCOPE BOTTOM to be retrieved by programs
that can use this information such as data-entry systems and
browse systems. It does not affect the behavior of the
data-driver nor does it set any filters on the data.
Examples:
. SET SCOPETOP TO 'B'
. SET SCOPEBOTTOM TO 'D'
. BROWSE
. CLEAR SCOPE
Source/Library:
DCSTD.CH
See Also:
dc_clrscope()
CODE DELETE
Delete a code table
Syntax:
CODE DELETE [ < tableName > ]
Arguments:
< tableName > is the name of the code table. This is a name of
up to eight (8) characters. If no argument is passed, then a
pick list of all code tables in the code table file will be
displayed.
Description:
CODE DELETE is used to delete a code table from the code
table file.
Notes:
The DCCODES.DBF file and its indexes will be created by
the DC_CodeOpen() function if it they do not already exist.
Examples:
CODE DELETE POSITION
Source/Library:
DCSTD.CH
See Also:
dc_codedelete()
CODE EDIT
CODE EDIT
Edit a Code Table
Syntax:
CODE EDIT [ [TABLE] < cTable > ]
Arguments:
< cTable > is the name of the code table in DCCODES.DBF
to load and edit (up to 8 characters). If no parameter is
passed then a pick-list of available code tables will be
displayed.
Description:
CODE EDIT is an editor that is used to maintain the DCCODES.DBF
dictionary file. Code Tables are groups of records that are
loaded into an array pick-list and used in validations when
using the eXPress++ data-driven Browse and Edit (data-entry)
system. When a "T" validation is used in a field-array, this
pops-up a code table pick-list for the operator to choose
possible values. Code tables can also be used in custom
applications where validations and/or choice boxes are required.
For example a code table named "POSITION" can be added to
provide a picklist of available entries for a field of
baseball player positions. They would be entered in a code
table as follows:
1B - First Base
2B - Second Base
3B - Third Base
P - Pitcher
SS - Short Stop
RF - Right Field
LF - Left Field
CF - Center Field
C - Catcher
A choice from this table can then be selected by calling
DC_CodeGet() in a validation or popup routine.
Notes:
The DCCODES.DBF file and its indexes will be created by
the DC_CodeOpen() function if it they do not already exist.
Examples:
-- Example 1 --
// Load a code table from the dictionary and edit it //
CODE EDIT
-- Example 2 --
// Edit code table "POSITION"
CODE EDIT POSITION
Source/Library:
DCSTD.CH
See Also:
dc_codeedit()
CODE IMPORT
Import a code table
Syntax:
CODE IMPORT [table name] | "ALL"]
Arguments:
< tablename > is the name of the code table. This is a name of
up to eight (8) characters. If a code table name is passed then
the DXCODES.DBF database will be searched and all code table
items that match the code table name will be imported into
DCCODES.DBF. If no name is passed, then a pick-list of all tables
stored in the DXCODES.DBF database will be displayed.
If ALL is passed as the table name, then all tables in the
DXCODES.DBF will be imported into DCCODES.DBF.
Returns:
A logical .TRUE. if the code table was saved, .FALSE. otherwise.
Description:
CODE IMPORT is used to import a code table from the DXCODES.DBF
import/export file to the DCCODES.DBF file.
Notes:
The DCCODES.DBF file is the data-dictionary database that
contains all code tables. If this file does not exist in your
default directory or path then it will be created. The
DXCODES.DBF file is the data-dictionary database that contains
all code tables that were exported from another system.
Examples:
. CODE IMPORT ALL
Source/Library:
DCSTD.CH
See Also:
dc_codeimp()
CODE EDIT
CODE RENAME
Rename a Code Table
Syntax:
CODE RENAME < cTableName > TO < cNewName >
Arguments:
< cTableName > is the name of the table to rename. This is a
name of up to 10 characters. If no name is given, then a pick
list of all code tables will be displayed.
TO < cNewName > is the new name. If no name is given, then a
dialog window will be displayed to enter a new name.
Description:
CODE RENAME is used to rename a Code Table.
Examples:
CODE RENAME BULLET TO BULLETS
Source/Library:
DCSTD.CH
See Also:
dc_coderename()
CODE EDIT
COMPILE
Compile a source .PRG or all changed .PRGs
Syntax:
COMPILE [ < filename > ], ;
[OPTIONS < options >], ;
[QUIET], ;
[NOWINDOW], ;
[RECOMPILE]
Arguments:
< filename > is the name of the file to compile. If this
argument is left blank, then all .PRG files which have a later
date stamp than the associated .OBJ file will be compiled.
OPTIONS < options > is a string of compiler options. If no argument
is
given, then the options established by DC_SETT('XPPOPT',< cOptions >),
SET XPPOPT TO < cOptions > or XPPOPT=< cOptions > (DCLIP.SYS)
are
used as the default.
QUIET will prevent displaying the status after compiling.
NOWINDOW will suppress the display a window showing the compiled
results.
RECOMPILE will force a recompile of < filename > regardless of
the date/time of < filename >. If this clause is not used,
then < filename > will be compiled only if it's date/time stamp
is later than the date/time stamp of it's associated. .OBJ file.
Description:
COMPILE | XPP compiles a specified .PRG file into an .OBJ file
or recompiles all .PRG files which have been modified and
have a later date/time stamp than their associated .OBJ file.
Use COMPILE | XPP after editing your source files. COMPILE | XPP
checks the date and time stamp on .PRG files and compares them
to the date and time on any corresponding .OBJ files. If the
date and/or time on a .PRG is later than the corresponding
.OBJ, the .PRG will be compiled with the /m option.
Notes:
If <þcFileNameþ> contains a full-path specification of a .PRG
file, then the compiled .OBJ will be created in the same
directory as the .PRG file unless the /o compiler switch is
used to direct the output.
If <þcFileNameþ> does not contain a full path then the .PRG file
must exist in the current directory or the directory
established by DC_SETT('PDIR',<þcPathþ>), SET PDIR TO
<þcPathþ>
or PDIR=<þcPathþ> (DCLIP.SYS).
If <þcFileNameþ> does not contain a full path or the /o compiler
switch is not used, then the compiled .OBJ will be created in
the directory established by DC_SETT('ODIR',<þcPathþ>), SET ODIR
TO <þcPathþ> or ODIR=<þcPathþ> (DCLIP.SYS).
Examples:
accept 'Enter a file to edit and compile' TO cFile
dc_editprg(cFile)
DC_COMPILE(cFile,'/n/m/w/l')
Source/Library:
DCSTD.CH
See Also:
dc_compile()
CONTINUE
Continue Locating a record
Syntax:
LOCATE [ < clauses > ]
Arguments:
See the Xbase++ documentation for a description of < clauses >.
Description:
CONTINUE is a front-end to the Xbase++ CONTINUE command. It
functions identically with the exception that it stays within
any scope that was previously set with SET SCOPE or
DC_SetScope().
Examples:
. USE EXPRESS VIA FOXCDX
. LOCATE FOR COMMAND = 'dc_dot'
Source/Library:
DCSTD.CH
See Also:
dc_dbcontinue()
dc_dblocate()
COPY TO
Copy records from selected database to a new database
Syntax:
COPY TO [ < args > ]
Arguments:
See the Xbase++ documentation for details about < args >.
Description:
COPY TO is used to copy records from the currently selected
database to a new database based on a set of conditions.
This command function identical to the Xbase++ COPY TO command
with the exception that a progress bar is displayed during the
copy and the number of records actually copied is displayed.
Examples:
. USE COLLECT
. COPY TO JUNK FOR RecNo() > 5
Source/Library:
DCSTD.CH
COPYNEW
Copy only new files to another directory
Syntax:
COPYNEW < cFromSpec > TO < cToSpec >
Arguments:
< cFromSpec > is the specification of the file(s) to copy from.
If this argument is not given, then a dialog will be displayed
prompting the user for the file specification.
< cToSpec > is the specification of the directory to copy to.
If this argument is not given, then a dialog will be displayed
prompting the user for the directory specification.
Description:
COPYNEW is used to copy a file or set of files to another
directory only if they are newer than the sames files in the
destination directory.
A dialog window will display the status of all files copied.
Examples:
COPYNEW *.TXT TO C:\express\sample
Source/Library:
DCSTD.CH
See Also:
dc_copynew()
COUNT
Count records in selected database
Syntax:
COUNT [ < args > ]
Arguments:
See the Xbase++ documentation for details about < args >.
Description:
COUNT is used to count records from the currently selected
database based on a set of conditions. This command functions
identical to the Xbase++ COUNT command with the exception that
a progress bar is displayed during the copy and the number of
records actually counted is displayed.
If no arguments are passed COUNT will use DC_Count() to display
a GUI dialog for selection of conditions.
Examples:
. USE COLLECT
. COUNT FOR RecNo() > 5
. COUNT
. COUNT TO nCount
Source/Library:
DCSTD.CH
See Also:
dc_count()
CREATE
Create a new database
Syntax:
CREATE < database >
Arguments:
< database > is the name of the new database to create. If you
do not include an extension, then the default extension for the
currently selected database driver will be used.
Description:
CREATE is used to create a new database from a menu in which
the user is prompted for entering field names, types, lengths,
etc.
The currently selected default DBE is used when the new database
is created.
Examples:
. SET DBE TO FOXCDX
. CREATE JUNK
Source/Library:
DCSTD.CH
See Also:
dc_create()
CRT
Run a text-based procedure in a new CRT Window
Syntax:
CRT < bBlock > [TITLE < cTitle >] ;
[COLOR < cColorString >]
Arguments:
< bBlock > is the code block to evaluate after the CRT window
is created or selected.
TITLE < cTitle > is the title to place into the title bar of the CRT
window.
COLOR < cColorString > is the color to clear the CRT window.
Description:
CRT is used to run a text-based procedure in a new CRT Window.
The function DC_CrtRunWindow() is used to store a pointer to
any existing XbpCrt() class window to use. If this function
returns anything other than an XbpCrt() object, then a new
CRT window is created before the code block is evaluated and
then destroyed after returning from the code block.
Examples:
. CRT {||DC_ChrSel()} TITLE 'ASCII Chart' COLOR 'N/W'
Source/Library:
DCSTD.CH
See Also:
dc_crtrun()
DATACONVERT
Convert a database to a different DBE driver
Syntax:
DATACONVERT < cFileName > ;
FROMDBE < fromDBE > ;
TODBE < toDBE >] ;
EXTENSION < ext >
Arguments:
< filename > is the name of the database to convert. If this
argument is not passed a GUI dialog window will be displayed to
enter information required. Enter ALL to convert all databases
with a specified extension.
< fromDBE > is the DBE to use to open < cFileName >.
< toDBE > is the DBE to use to create the converted file.
< ext > is the extension to use when using ALL as the file name.
Description:
DATACONVERT is used to convert a database to use another
DBE driver.
Examples:
// convert all files that have a .DBT memo file.
. DATACONVERT COLLECT FROMDBE DBFNTX TODBE FOXCDX EXTE .DBT
// convert all files that have a .DBF extension
. DATACONVERT ALL FROMDBE DBFNTX TODBE DBFCDX EXTE .DBF
Source/Library:
DCSTD.CH
See Also:
dc_dataconvert()
DATE
A pop-up calendar for selecting a date
Syntax:
DATE
Arguments:
None.
Description:
DATE displays a GUI calendar.
Examples:
. DATE
Source/Library:
DCSTD.CH
See Also:
dc_popdate()
DELETE
Mark record(s) for deletion
Syntax:
DELETE [ < args > ]
Arguments:
See the Xbase++ documentation for < args >.
Description:
DELETE without arguments is used to mark the current record for
deletion. This command is a front-end to the Xbase++ dbDelete()
function that automatically locks and unlocks the record to
prevent a runtime error on shared databases.
DELETE with arguments works identical to the Xbase++ DELETE
command except a progress odometer will display the number of
records scanned and the number of records that were actually
deleted.
Examples:
. USE EXPRESS INDEX EXPRESS.CDX SHARED
. GO 10
. DELETE
. DELETE WHILE RecNo() < 20
Source/Library:
DCSTD.CH
See Also:
dc_delete()
DELETE FILE
Delete a file
Syntax:
DELETE FILE [ < filename > ]
Arguments:
< filename > is the name of the file to delete. If this argument
is not used then a GUI dialog will be displayed to choose a file.
Description:
DELETE FILE is used to delete a file from the disk.
Examples:
. DELETE FILE JUNK.PRN
. DELETE FILE
Source/Library:
DCSTD.CH
See Also:
dc_erase()
DELETE TAG
Delete a tag from a combined index
Syntax:
DELETE TAG
Arguments:
None.
Description:
DELETE TAG is used to delete an index tag from a combined
index.
Examples:
. USE EXPRESS INDEX EXPRESS.CDX EXCL
. DELETE TAG
Source/Library:
DCSTD.CH
See Also:
dc_tagdelete()
DIR
Display a directory of files or databases
Syntax:
DIR [ < FileSpec > ]
Arguments:
DIR < FileSpec > is the specification of the files to display
including
path and extension. The file dialog shows the file name, date,
size and time.
If no argument is passed, then only .DBF database files will be
displayed. This dialog allows for the file to be automatically
opened when the item is selected. The database dialog shows the
file name, date, size, number of records, and type of database.
Description:
DIR is used to display a directory of files or databases.
Examples:
. DIR // display all database files
. DIR *.TXT // display all text files
Source/Library:
DCSTD.CH
See Also:
dc_dir()
DISPLAY MEMORY
Display the contents of a memory file or current memory
Syntax:
DISPLAY MEMORY [FILE cMemFileName]
Arguments:
FILE < cMemFileName > is the name of the memory file. If no
extension is given then .XPF is assumed.
If no argument is passed then the current contents of memory
are saved to a file named EXPRESS.XPF and the contents of
EXPRESS.XPF are displayed. NOTE: If any PUBLIC or PRIVATE
memory variables exist containing non-persistent data such as
objects or some type of code blocks, a runtime error will
result and the contents of memory cannot be displayed.
Description:
DISPLAY MEMORY is used to display the contents of an .XPF (memory)
file or the current contents of memory (PUBLICS/PRIVATES only)
in a GUI scrolling browse window.
Examples:
. custname := 'Donnay Software'
. product := 'eXPress++ 2.0'
. DISPLAY MEMORY
. DISPLAY MEMORY FILE PRODUCT.XPF
Source/Library:
DCSTD.CH
See Also:
dc_xpftoarray()
dc_dispmem()
DISPLAY STATUS
Display System status window
Syntax:
DISPLAY STATUS
Arguments:
None.
Description:
DISPLAY STATUS is used to display a scrollable window of information
about the system application.
Examples:
. USE COLLECT INDEX COLLECT
. DISPLAY STATUS
Source/Library:
DCSTD.CH
See Also:
dc_status()
DISPLAY STRUCTURE
Display the structure of the selected database
Syntax:
DISPLAY STRUCTURE [WIDE]
Arguments:
WIDE displays the structure in a Wide Window with the data
formatted in the screen to view more fields in the viewable
area of the window. Use this option when viewing the structure
of databases with many fields.
Description:
DISPLAY STRUCTURE is used to display the structure of the selected
database file. A GUI dialog window displays the structure in
a scrollable window with options to Print or save to a File.
Examples:
. USE COLLECT
. DISPLAY STRUCTURE
Source/Library:
DCSTD.CH
See Also:
dc_dbstru()
dc_dbstruw()
DLL LIST
List all loaded dynamic .DLLs
Syntax:
DLL LIST
Arguments:
< cDllName > is the name of the .DLL to load. If this argument
is not passed a GUI dialog will be displayed prompting for the
name.
< lMessage > if .TRUE. (default) will display a GUI message box
if the .DLL could not be loaded.
Description:
DLL LIST is used to list all the dynamic .DLLs that are
currently loaded. These .DLLs must have been loaded with
DC_DllLoad() or DLL LOAD.
Examples:
. DLL LOAD MYTEST
. DLL LOAD MYFUNCS
Source/Library:
DCSTD.CH
See Also:
dc_dlllist()
DLL LOAD
Load a dynamic .DLL
Syntax:
DLL LOAD [ < cDllName > ]
Arguments:
< cDllName > is the name of the .DLL to load. If this argument
is not passed a GUI dialog will be displayed prompting for the
name.
Description:
DLL LOAD is used to load a dynamic .DLL and save away
information about the .DLL in a static array to be used later
with DLL UNLOAD or DC_DllUnload().
Examples:
. DLL LOAD MYTEST
. DO test
. DLL UNLOAD MYTEST
Source/Library:
DCSTD.CH
See Also:
dc_dllload()
DLL UNLOAD
UnLoad a dynamic .DLL
Syntax:
DLL UNLOAD [ < cDllName > ]
Arguments:
< cDllName > is the name of the .DLL to unload.
Description:
DLL UNLOAD is used to unload a dynamic .DLL that was previously
loaded with DLL LOAD or DC_DllLoad().
Examples:
. DLL LOAD MYTEST
. DO test
. DLL UNLOAD MYTEST
Source/Library:
DCSTD.CH
See Also:
dc_dllunload()
DLL LOAD
EDIT FILE
Edit a source file
Syntax:
EDIT FILE < cFileName > ;
[LINE < nLineNmbr >] ;
[ < cParameters > ]
Arguments:
< cFileName > is the name of the ascii file to edit. If no
argument is given, then the user will be prompted for the name
of the file. If no extension is included, then .PRG is
assumed.
LINE < nLineNmbr > is the line number to go to. If no parameter is
passed then the editing will start at line 1.
< cParameters > is an optional set of parameters to pass to the
editor.
Returns:
A logical .TRUE. if editor was called successfully.
Description:
EDIT FILE is used to edit a source code file. This function
will use the editor defined as the "system" editor via the
EDITOR= command in DCLIP.SYS, the DC_EDITCONFIG() function
or the SET EDITOR command.
If no external editor is defined, then an imbedded GUI text
editor will be used.
Notes:
If the drive and directory is not included in the <þcFileNameþ>
argument, then DC_EDITPRG() will search for the file first in
the SET DCLIP directory followed by the SET PDIR directory (if
file is a .PRG).
Examples:
. dc_editconfig( '\express\util\MEW2.BAT' ) // Multi-Edit (Windows)
. DC_EDITPRG( 'test' )
Source/Library:
DCSTD.CH
See Also:
dc_editprg()
EDIT VIRTUAL
Edit the Virtual Record
Syntax:
EDIT VIRTUAL
Arguments:
None.
Description:
EDIT VIRTUAL pops up a full-screen (text-mode) editor to modify
the contents of the virtual record previously saved by the SAVE
VIRTUAL command.
Examples:
. USE CUSTOMER
. GO 10
. SAVE VIRTUAL
. EDIT VIRTUAL
. GO 20
. REPLACE WITH VIRTUAL
Source/Library:
DCSTD.CH
FILE DELETE
Delete a file group from the DCFILES.DBF dictionary
Syntax:
FILE DELETE ;
[GROUP < cFileGroup >] )
Arguments:
GROUP < cFileGroup > is the name of the file group in DCFILES.DBF
to delete (up to 8 characters). If no parameter is passed then
a pick list will be displayed.
Description:
FILE DELETE is used to delete a file group from the DCFILES.DBF
file dictionary.
Examples:
// Delete the file group named JUNK
. FILE DELETE JUNK
Source/Library:
DCSTD.CH
See Also:
dc_filedel()
FILE EDIT
A Database File / Work area Definition editor
Syntax:
FILE EDIT [ < acFileGroup > ]
Arguments:
< acFileGroup > is the name of the file group in DCFILES.DBF
to load and edit (up to 8 characters) or < acFileGroup > is a
File Group array. See DC_FileEdit() (RETURNS) for a specification
of this array. If no parameter is passed, a pick-list of all
File Groups in DCFILES.DBF will be displayed.
Description:
FILE EDIT is an editor that maintains the definition of
each database and it's indexes and relations.
Each file group is stored in the DCFILES.DBF dictionary file.
A file group contains all the information necessary to
restore work areas for editing and browsing. The data
dictionary contains information for opening databases and
indexes (or creating indexes that do not exist).
Examples:
-- Example 1 --
// Load a file group from the dictionary and edit it //
. FILE EDIT
-- Example 2 --
// Edit file group "CUSTOMER"
. FILE EDIT GROUP CUSTOMER
-- Example 3 --
// Edit a file group array //
. aFileGroup := DC_FilePik()
. FILE EDIT GROUP aFileGroup
Source/Library:
DCSTD.CH
See Also:
dc_fileedit()
FILE IMPORT
Import File Group(s) from the Import File Dictionary
Syntax:
FILE IMPORT ;
[GROUP < cFileGroup > | ALL ]
Arguments:
GROUP < cFileGroup > is the name of the file group. This is a
name of up to eight (8) digits. If a group name is passed then
the DXFILES.DBF database will be searched and all group
items that match the group name be imported into DCFILES.DBF.
If no name is passed, then a pick-list of all file groups stored
in the DXFILES.DBF database will be displayed.
If ALL is passed as the group name, then all groups in the
DXFILES.DBF will be imported into DCFILES.DBF.
Description:
FILE IMPORT is used to import file group configurations from a
DXFILES.DBF file into the DCFILES.DBF file.
Notes:
The DCFILES.DBF file is the data-dictionary database that
contains all file group configurations. If this file does not
exist in your default directory or path then it will be created.
The DXFILES.DBF file is the data-dictionary database that contains
all file groups that were exported from another system.
Source/Library:
DCSTD.CH
See Also:
dc_fileimp()
FILE RESTORE
Restore work areas, indexes, relations, from dictionary
Syntax:
FILE RESTORE [ < acFileGroup > ], ;
[ADDITIVE], ;
[EXCLUSIVE], ;
[TAG < cTagName >]
Arguments:
< acFileGroup > is the name of a file group in the DCFILES.DBF
dictionary or an array that conforms to the specifications of
the array returned by DC_FileEdit(). If no argument is passed,
a picklist will be displayed.
ADDITIVE is an optional clause which will insure that
currently used work areas are not affected. If a database is
already opened in a work area, it will not be reopened in a new
work area. If the < lAdditive > parameter is not passed, then
all work areas will be closed before restoring the old work.
EXCLUSIVE if .TRUE. will override the settings in the DCFILES.DBF
file for the file group and open the files EXCLUSIVE. If the
parameter is not passed or is .FALSE., then files will be
opened in the default mode.
TAG < cTagName > if passed as a character string or numeric value
will override the tag name or index order in the DCFILES.DBF
file group.
Description:
FILE RESTORE is used to restore a complete work area
environment from a the DCFILES.DBF data dictionary. This
function will accomplish the following:
* Re-open all databases, using the required RDD (Replaceable
Data Driver).
* Open all indexes or rebuild indexes that don't exist or have
not been properly updated.
* Set parent-child relations.
* Restore record, index and tag pointers.
* Restore browse windows. (optional)
* Restore filters.
* Restore Database environment such as PATH, DEFAULT, UNIQUE,
etc.
Examples:
use maillist via 'ADSDBE"
index on zip tag zip
index on phone tag phones
use customer via 'ADSDBE' new index custnmbr
use invoice via 'ADSDBE' new index invoice
set relation to cust_nmbr into customer
FILE SAVE MYWORK
close all
FILE RESTORE MYWORK
Source/Library:
DCSTD.CH
See Also:
dc_filerest()
FILE SAVE
FILE SAVE
Save Work area definition array to dictionary
Syntax:
FILE SAVE [FROM < aFileGroup >] ;
[WORKAREAS] ;
[GROUP < cFileGroup >]
Arguments:
FROM < aFileGroup > is a file group array that conforms to the
specification of the array returned by DC_FILEEDIT().
WORKAREAS will save the information about currently open
workareas rather than a passed array. The < aFileGroup >
parameter is not needed and will be ignored if WORKAREAS is
used.
GROUP < cFileGroup > is needed only if the WORKAREAS clause is
used. This is the name of the file group (up to 8 characters)
to assign to the file group.
Description:
FILE SAVE is used to save the contents of a file group
array or the current workareas to the DCFILES.DBF
data-dictionary.
Examples:
-- Example 1 --
/* Save Work areas to file dictionary */
FILE SAVE WORKAREAS GROUP CUSTOMER
-- Example 2 --
/* Edit and Save a file group array //
cFileGroup := DC_FilePik()
aFileGroup := DC_FileEdit( cFileGroup )
FILE SAVE FROM aFileGroup
Source/Library:
DCSTD.CH
See Also:
dc_filesave()
FILE RESTORE
FIND
GUI dialog for finding a record using an index
Syntax:
FIND
Arguments:
None.
Description:
FIND is a high-level command that scans all index keys
and creates an input screen to allow the user to find
information by simply typing in the value in the box next to
the associated index key. This is a quick method of finding
information in a database that has multiple index files open or
multiple index tags in a combined index.
After the user enters in the value next to the referenced
index, the database is checked to see if more than one record
matches the entered value. If duplicates are found, then a
pick-list of records is displayed to allow the user to choose
one.
Examples:
. USE EXPRESS VIA FOXCDX INDEX EXPRESS.CDX
. FIND
Source/Library:
DCSTD.CH
See Also:
dc_find()
HUNT
GO BOTTOM
Go to the Bottom of a set of Scoped Records
Syntax:
GO | GOTO BOTTOM
Arguments:
None.
Description:
GO BOTTOM is used to go to the first record in a group of
"scoped" records. Scopes are set via the DC_SetScope() function.
If a scope is not set, then GO BOTTOM simply calls dbGoBottom().
Examples:
. USE EXPRESS INDEX EXPRESS.CDX
. SET ORDER TO 'COMMAND'
. SET SCOPE TOP TO 'C'
. SET SCOPE BOTTOM TO 'E'
. GO BOTTOM
Source/Library:
DCSTD.CH
See Also:
dc_dbgobottom()
GO TOP
Go to the Top of a set of Scoped Records
Syntax:
GO | GOTO TOP
Arguments:
None.
Description:
GO TOP is used to go to the first record in a group of "scoped"
records. Scopes are set via the DC_SetScope() function.
If a scope is not set, then GO TOP simply calls dbGoTop().
Examples:
. USE EXPRESS INDEX EXPRESS.CDX
. SET ORDER TO 'COMMAND'
. SET SCOPE TOP TO 'C'
. SET SCOPE BOTTOM TO 'E'
. GO TOP
Source/Library:
DCSTD.CH
See Also:
dc_dbgotop()
HELP
Display HELP for a command or function
Syntax:
HELP [< command >]
Arguments:
< command > is the name of a command or function.
Description:
HELP will display the help window and optionally go to a
specified help item.
Examples:
HELP
HELP @ DCBROWSE
HELP dc_arrayview()
Source/Library:
DCSTD.CH
HUNT
Hunt for a record by search all indexes
Syntax:
HUNT < xValue >
Arguments:
< xValue > is the value to HUNT. This can be a value or an
expression. If entered as an expression ( includes quotes or
parenthesis ) it will be evaluated and converted to the proper
value before performing the seek. If entered as a literal
argument, then a "smart" process in invoked which will
determine the type of argument based on the kind of information
entered.
Description:
HUNT is a method of FINDing a record by searching all open
index files or tags for the value entered. This is the
quickest method of finding information by scanning all the keys
for the first match. The value entered on the command line is
automatically converted to the proper "type" to perform the
seek. For example, if you entered the command HUNT 12.5, only
numeric indexes will be seeked, or if you enter the command
HUNT 01/02/03, only date indexes will be seeked. If you enter
an expression, such as HUNT DATE()-30, then only the indexes
that match the type of the expression entered will be seeked.
Using HUNT and RESUME is the fastest method of finding
information in a large database that uses many index keys. It
is recommended that you build a set of keys for all fields that
you want to include in the HUNT operation. This can be
accomplished easily by using the INDEX FIELDS command to create
a set of tags all at one time.
Notes:
HUNT automatically capitalizes the passed argument, so make
sure that your character type indexes are UPPER() case. When
building index tags with INDEX FIELDS, this is accomplished
automatically.
Examples:
. USE MAILLIST
. INDEX FIELDS LAST, FIRST, COMPANY, MAIL_DATE, SOURCE ;
TO MAILLIST.CDX
. HUNT COMP
. RESUME
. HUNT DATE()
. HUNT LARRY
. HUNT EGGHEAD
Source/Library:
DCSTD.CH
See Also:
FIND
dc_hunt()
IF ELSE
Evaluate a list of expressions based on a condition
Syntax:
IF < bIf > DO < bDoIf > ;
[ELSE < bDoElse >]
Arguments:
< bIf > is a code block to be that is evaluated as the IF
statement.
DO < bDoIf > is a code block that is evaluated if < bIf >
evaluates
.TRUE.
ELSE < bDoElse > is a code block that is evaluated if < bIf >
evaluates
.FALSE.
Description:
IF ELSE is a dot-prompt replacement for IF...ELSE...ENDIF
programming structure to be used when a single line command
is needed.
Examples:
. USE COLLECT
. IF eof() DO DC_MsgBox('End of file') ELSE dbSkip()
Source/Library:
DCSTD.CH
See Also:
dc_ifelse()
INDEX FIELDS
Create index tags for all fields in a database
Syntax:
INDEX FIELDS [ < list > ] ;
[LENGTH < nLength >] ;
[TO < cCDXName >]
Arguments:
TO < cCDXName > is the name of the Combined Index file to create.
If no extension is given, then if the default extension for
combined indexes supported by the Data driver in use will be
appended.
If no < cCDXName > name is given, then the index will be created
using the same prefix as the open database and with the default
extension for combined indexes supported by the Data driver in
use.
< list > is a list of index tag names to create, separated by
commas. The tag name(s) must be the same as the name(s) of
valid fields in the current work area. If no list is passed
then tags for ALL fields will be created.
LENGTH < nLength > is an optional argument only to determine the
maximum length of character type indexes. For example, if you
have a character field of 100 bytes, you most likely will not
want to index on all 100 bytes, but instead on only the first
10 characters. If this argument is not passed, then a default
length of 10 will be used. If the length of any character field
is less than < nLength > then the index length for that specific
tag will be the field length.
Description:
INDEX FIELDS is used to create an index tag for all fields
(up to 99) in a database. This command is handy when you wish
to have an index for each field in the database and are using
the HUNT..RESUME .or DC_HUNT() "smart seeking" feature of
eXPress++.
Examples:
. USE MAILLIST VIA DBFCDX
. INDEX FIELDS "LAST", "COMPANY", "SOURCE"
. HUNT 'SCOTT'
Source/Library:
DCSTD.CH
See Also:
dc_tagallcreate()
INDEX ON
Create an index
Syntax:
INDEX ON [ < clauses > ]
Arguments:
See the Xbase++ documentation for a description of < clauses >.
Description:
INDEX ON is a front-end to the Xbase++ INDEX ON command and
supports all the same options. It functions identically with
the exception that it displays a progress bar during the
index process.
Examples:
. USE CUSTOMER
. INDEX ON CUST_NMBR TO CUSTNMBR
. INDEX ON NAME TO CUSTNAME
. SET INDEX TO CUSTNAME, CUSTNMBR
. USE COLLECT VIA DBFCDX
. INDEX ON TYPE TAG TYPE
Source/Library:
DCSTD.CH
INKEY
Display Inkey() and AppEvent() values for pressed keys
Syntax:
INKEY
Arguments:
None.
Description:
INKEY is used to display Inkey() and AppEvent() values for
keys pressed by the user.
Examples:
. INKEY
Source/Library:
DCSTD.CH
See Also:
dc_inkeydsp()
dc_inkey()
INSERT
Insert Blank or Virtual records in selected database
Syntax:
INSERT [VIRTUAL] [< nRecords >]
Arguments:
< nRecords > is the number of new records to insert.
VIRTUAL option will replace all new records with the value of
the virtual record created by using the SAVE VIRTUAL command.
Description:
INSERT will insert a specified number of blank or virtual
records into the currently selected database starting at the
current record. All records after the current record will be
pushed down and the selected number of records will be inserted
into the database.
Examples:
. INSERT 20
. INSERT VIRTUAL 5
Source/Library:
DCSTD.CH
See Also:
BLANK
INTERP
Browse an array
Syntax:
ABROWSE < array > [SYMMETRICAL] [NONSYMETRICAL]
Arguments:
< array > is the name of an array to browse. If this command is
used at the dot prompt, then the array must be public or private.
SYMMETRICAL will browse the array using the columnar-style
browser.
NONSYMMETRICAL will browse the array using the indented-
style browser.
Description:
ABROWSE is a full-screen (text-mode) array browser that gives
a full-view of all elements in a multi-dimensional array or
object. A symetrical array may be browsed using a columnar
style browse or any type of array may be browsed using an
indented-style browse.
Indented style browsing displays sub-elements as automatically
indented and the type and value of each element is displayed.
Indented-style browsing allows you to change the type, value, or
length of any element or sub-element. You can grow or shrink
arrays or change elements of any type to an array or arrays to
any other type.
Examples:
. DIR := DIRECTORY('*.PRG')
. ABROWSE DIR
Source/Library:
DCSTD.CH
See Also:
AVIEW
DC_ArrayView()
INTERP
Save current record to Virtual record
Syntax:
SAVE VIRTUAL
Arguments:
None
Description:
SAVE VIRTUAL is used to save the contents of the current record
to a virtual record. A virtual record is a file with the same
prefix as the database alias and with the extension .DCV.
The virtual record can then be used at any time to replace the
contents of specified records in the same database by using the
REPLACE WITH VIRTUAL, INSERT VIRTUAL or APPEND VIRTUAL commands.
Examples:
. USE MAILLIST
. GO 2345
. SAVE VIRTUAL
. APPEND BLANK
. REPLACE WITH VIRTUAL
. GO 1000
. INSERT VIRTUAL 10
Source/Library:
DCSTD.CH
See Also:
APPEND VIRTUAL
DC_VirtSave()
INTERP
Login to application to establish user rights
Syntax:
LOGIN [USER < cUserID >] ;
[PASSWORD < cPassword >]
Arguments:
USER < cUserID > is the User ID of the logging on user. If this
parameter IS NOT passed and the PASSWORD < cPassword > parameter
IS passed, then the DCUSERS.DBF will be searched only for a
match to the < cPassword >. If < cUserID > is passed and
< cPassword > is not passed, then the user will be prompted to
enter a password. If neither < cUserID > or < cPassword > is
passed, then the user will be prompted for both a User ID
and a password.
Description:
LOGIN is used to log a user onto the system in the event that
it is necessary to establish rights to menus, files, or
specified fields. LOGIN calls the function DC_UserLogin().
The eXPress++ menu system, data-entry (editing) system, browsing
system, and file system provide for establishing locks on menu
items, fields and/or files. If these systems are used without
first calling DC_Userlogin(), then the user will be given full
rights. If however, DC_UserLogin() is called first, then the
user will be given access to only those items in which the user
has the exact key or a master key for each specified lock.
If the user logs on with the MASTER PASSWORD, then he/she is
automatically established as a "programmer" and is given full
access. The MASTER PASSWORD is hard-coded by a definition in
DCUSER.CH. To change the MASTER PASSWORD you must redefine it
in DCUSER.CH and then recompile _DCUSER.DBF and include the
new _DCUSER.OBJ in your link-script.
User PASSWORDS are stored in the DCUSER.DBF database in
encrypted form. Passwords may be assigned or changed only
with the DC_USERMAINT() function or the USER EDIT command.
User KEYS are stored in the DCUSER.DBF database and may be
assigned or changed only with the DC_USERMAINT() function or
the USER EDIT command. Locks are placed on menu items or
fields by entering a 3-character "lock" sequence when using
the menu-designer and/or data-entry designer. A database of
standard locks and their definitions may be maintained by
DC_LOCKMAINT(). When assigning a user a set of "keys" they
may be specific keys or "master" keys. A Master key is
assigned by using wild-cards. For example, the Master Key
"5****" will allow access to any lock starting with the number
"5", whereas the Master Key "67***" will allow access to any
lock with the number "67". Keys are stored in the USR_KEYS
field and are separated by commas.
Example:
"1****,2****,3****,41***,42***,52231,6****"
Examples:
. LOGIN USER LARRY PASSWORD BOOZER
Source/Library:
DCSTD.CH
See Also:
dc_userlogin()
INTERP
Create a new menu with Menu Editor
Syntax:
MENU CREATE < cMenuName >
Arguments:
< cMenuName > is the name of the new menu to create. The menu
will be saved to the DCMENU.DBF dictionary.
Description:
MENU CREATE is used to create a new menu using the menu editor
system - DC_MenuEdit().
Examples:
. MENU CREATE NEWMENU
Source/Library:
DCSTD.CH
See Also:
dc_menuedit()
INTERP
Set a relation with a child scope
Syntax:
SET RELATION ;
TO < key1 > ;
INTO < alias1 > ;
[SCOPED] ;
[, TO < keyN > INTO < (aliasN) > [SCOPED]] ;
[ADDITIVE]
Arguments:
< alias1 > through < aliasN > are character string containing
the
alias name for the work area(s) to which a link is defined.
TO < key1 > through < keyN > are expression(s) used to position
the
record pointer in the child work area in order to synchronize it
with the record pointer in the parent work area. The return
value of the relation is passed to DbSeek() to position the
record pointer in the child work area.
SCOPED will automatically set the scope in the child work area
to the value of the data in the parent work area whenever the
parent record pointer is changed.
ADDITIVE will add the relation to existing relations. If this
clause is not used then all existing relations will be closed
first.
Description:
SET RELATION is a front-end to the Xbase++ function
dbSetRelation() which defines a link between two work areas. The
dependent or child work area is specified by the argument <þcAliasþ>
The controlling or parent work area is determined by the alias
operator. If the alias operator is not used, the current work area
is the parent work area the child area is synchronized with.
Existing links in the parent work area are not deleted by
SET RELATION.
The synchronization of the record pointer in the child work area
occurs using the return value of <þbRelationþ> . The child work area
is automatically searched for this value using DbSeek() anytime the
record pointer in the parent work area changes. If no index is
active in the child work area, synchronization is done using the
function DbGoto(). This means that an attempt is made to set the
record pointer in the child work area using the value returned
from <þbRelationþ> as a record ID.
The range for navigating the record pointer in the child work area
can be restricted to a subset of records by specifying .T. (true)
for the optional parameter SCOPED . In this case, only those
records are accessible in the child work area where the link
expression <þbRelationþ> results in the same value for both work
areas. When attempting to move the record pointer in the child
work area outside this defined range, either Bof() or Eof() is set
to .T. (true). In this way, a time consuming filter expression can
be avoided.
Examples:
. USE INVOICES
. USE INVITEMS INDEX INVITEMS
. SELECT INVOICES
. SET RELATION TO "01122" INTO INVITEMS SCOPED
Source/Library:
DCSTD.CH
See Also:
dc_setrelation()
SET SCOPE
INTERP
Set the Dialogue mode to GUI or TEXT
Syntax:
SET GUI ON | OFF
Arguments:
SET GUI ON will cause eXPress++ to process Dual-Mode functions as
a GUI dialogue. SET GUI OFF will cause eXPress++ to process all
Dual-Mode functions as a TEXT dialogue.
Description:
SET GUI or GUI is used to set Text or Gui mode for Dual-Mode
Functions. The eXPress++ library contains a variety of
functions which operate in "Dual-Mode". When GUI mode is
ON, the function uses a GUI dialogue based on Xbase Parts. When
the GUI mode is OFF the function works in standard text-mode.
Examples:
. SET GUI ON
. DC_PopCalc() // pop up a GUI based calculator
. SET GUI OFF
. DC_PopCalc() // pop up a Text based calculator
Source/Library:
DCSTD.CH
See Also:
dc_gui()
INTERP
Recall record(s) that were previously marked for deletion
Syntax:
RECALL [ < args > ]
Arguments:
See the Xbase++ documentation for < args >.
Description:
RECALL without arguments is used to recall the current record
after it was previously marked for deletion. This command is
a front-end to the Xbase++ dbRecall() function that automatically
locks and unlocks the record to prevent a runtime error on
shared databases.
RECALL with arguments works identical to the Xbase++ RECALL
command except a progress odometer will display the number of
records scanned and the number of records that were actually
recalled.
Examples:
. USE EXPRESS INDEX EXPRESS.CDX SHARED
. GO 10
. RECALL
. RECALL WHILE RecNo() < 20
Source/Library:
DCSTD.CH
See Also:
dc_recall()
DELETE
INTERP
Interpret a command string
Syntax:
INTERPRET [CLIPBOARD] ;
[MEMVAR < memvar >] ;
[FILE < file >] ;
[WITH < params,... >]
Arguments:
MEMVAR < memvar > is a string containing a set of commands or an
array containing a procedure. If < memvar > is an array, then it
must conform to the specifications of the array returned by
DC_PROGLOAD(). If this parameter is a NIL, then the Windows
ClipBoard will be used as the program to interpret. This
allows for cutting code snippets out of a help file, copying
them to the ClipBoard and then interpreting the code snippet.
- or -
FILE < file > is a text file containing a set of commands.
WITH < params > is a single-dimensional array of parameters to
pass to the program being interpreted. There should be one
element in the array for each parameter included in the
PARAMETERS statement in the interpreted program.
NOTE: The CLIPBOARD clause or no parameters will use the Windows
ClipBoard as the source of the program.
Description:
INTERPRET is a command-line interpreter that will translate
and execute any sequence of commands that is supported by Xbase++,
eXPress++ and/or any command that has been user defined in
DCCUSTOM.CH. INTERPRET requires that the file DCSTD.CH and
DCCUSTOM.CH exist in the INCLUDE path of the workstation. The
DCSTD.CH file contains all the standard eXPress++ commands and
pointers to the Xbase++ include files for the standard Xbase++
commands and defines.
INTERPRET will execute a single command string or an array of
commands that encompass an entire procedure with passed parameters
and a return value.
INTERPRET was designed to work in conjuction with DC_PROGRAM()
and/or DC_PROGLOAD() which will load a program from the DCPROG.DBF
program catalog, compile the program into a multi-dimensional
array, then pass the program to INTERPRET for execution.
Examples:
. INTERPRET MYPROG.TXT
Source/Library:
DCSTD.CH
See Also:
dc_dot()
dc_translate()
dc_interpret()
INTERP
Select a database driver
Syntax:
SET DBE | RDD [TO < cDbe >]
Arguments:
TO < cDbe > is the database driver to select.
Description:
SET DBE | RDD is used to select a database driver (DBE) from a
picklist of available drivers.
Examples:
. SET RDD TO DBFNTX // set DBFNTX as the default driver
. SET RDD // display a list of drivers to select
Source/Library:
DCSTD.CH
See Also:
dc_rddsel()
INTERP
Replace the current record contents with Virtual record arra
Syntax:
REPLACE WITH VIRTUAL
Arguments:
None.
Description:
REPLACE VIRTUAL will replace the contents of the current
record with the data in the virtual record. This function will
automatically handle the record locking, so it is not necessary
to lock the record.
Examples:
. USE COLLECT
. GO 5
. SAVE VIRTUAL
. GO 6
. REPLACE VIRTUAL
Source/Library:
DCSTD.CH
See Also:
dc_virtrepl()
INTERP
Assign new values to field variables
Syntax:
REPLACE [ < args > ]
Arguments:
See the Xbase++ documentation for the REPLACE command.
Description:
REPLACE works identical to the Xbase++ REPLACE command except
a progress odometer will display the number of records scanned
and the number of records that were actually replaced. Also,
each record is individually locked and unlocked thus allowing
REPLACE to be used with shared applications.
If no arguments are used, then REPLACE displays a GUI dialog
so the user may enter the conditions for the replacement.
Examples:
. USE COLLECT
. REPLACE ALL CONDITION WITH 'E'
. REPLACE
Source/Library:
DCSTD.CH
See Also:
dc_virtrepl()
INTERP
Search all fields in a set of databases for a value
Syntax:
SEARCH [ < cFileName > ] ;
[FOR < cText >] ;
[TOPRINT ] ;
[TOFILE < dest >]
Arguments:
< cFileName > is the name of the database to search. If no path
is given then the current SET DEFAULT directory is assumed. If
< cFileName > is "ALL", then all databases that match the
currently selected RDD will be searched. If no argument is
passed then a GUI dialog will be displayed prompting for a
file name, text and output.
FOR < cText > is the text to search for. This is a case
non-sensitive search and the first occurrence of the text in
each field will be listed. If no argument is passed then a
GUI dialog will be displayed prompting for a file name, text
and output.
TOPRINT will send the report to the printer. TOFILE < dest >
will send the report to the file < dest >.
Description:
SEARCH is used to search all fields of specified work
areas for matching text and list all occurences of found text.
The output can be sent to the screen, printer or a file and all
occurrences where the text is found will be listed as follows:
File Record Field Text
----------- ------ ------------ ---------------------------
CUSTOMER 123 PHONE 714-555-1212
MAILLIST 23567 PHONE_NUM (619)555-1212
Examples:
// search CUSTOMER.DBF for occurrences of "O'BRIEN"
// and display results on screen
. SET RDD TO DBFNTX
. SEARCH CUSTOMER FOR "O'BRIEN"
// search CUSTOMER.DBF for occurrences of "O'BRIEN"
// and copy results to file OBRIEN.TXT
. SET RDD TO DBFNTX
. SEARCH CUSTOMER FOR "O'BRIEN" TO FILE OBRIEN.TXT
// search all .DBF's for occurences of "CLIPPER"
. SET RDD TO DBFNTX
. SEARCH ALL FOR CLIPPER
Source/Library:
DCSTD.CH
See Also:
dc_search()
INTERP
Restore a multidimensional array from a binary file
Syntax:
RESTORE ARRAY < aArray > [FROM < cFileName >]
Arguments:
< aArray > is the name of the variable to store the array contents.
FROM < cFileName > is the name of the binary file that was previously
created with SAVE ARRAY or DC_ASave(). If this argument is not
passed then a file named < aArray >.DCA will be the default.
Description:
RESTORE ARRAY will create an multidimensional array from the
contents of a binary file that was created with SAVE ARRAY.
Examples:
. aDir := Directory()
. SAVE ARRAY aDir
. RESTORE ARRAY aDir
. SAVE ARRAY aDir TO junk.ar
. RESTORE ARRAY aDir FROM junk.ar
Source/Library:
DCSTD.CH
See Also:
dc_arestore()
SAVE ARRAY
INTERP
Save info about all open workareas to an array
Syntax:
SAVE DATA TO < aWorkArea >
Arguments:
< aWorkArea > is the name of the variable to store the array
pointer.
Description:
SAVE DATA will store all work area info to an array.
RESTORE DATA will reopen all databases, indexes and relations
from the array created by SAVE DATA or DC_DataSave(). This
function is handy when it is necessary to insure that database
work areas are restored to their original condition after
calling a routine that may close files, open files, select
different indexes or clobber relations.
Examples:
. USE EXPRESS ALIAS XDOC VIA FOXCDX INDEX EXPRESS
. SET TAG TO COMMAND
. SAVE DATA TO aWorkArea
. CLOSE ALL
. RESTORE DATA FROM aWorkArea
Source/Library:
DCSTD.CH
See Also:
dc_datasave()
INTERP
Restore work areas
Syntax:
RESTORE DATA FROM < aWorkArea >
Arguments:
< aWorkArea > is a multidimensional array created by the SAVE DATA
command or DC_DataSave() function.
Description:
RESTORE DATA will reopen all databases, indexes and relations
from the array created by SAVE DATA or DC_DataSave(). This
function is handy when it is necessary to insure that database
work areas are restored to their original condition after
calling a routine that may close files, open files, select
different indexes or clobber relations.
Examples:
. USE EXPRESS ALIAS XDOC VIA FOXCDX INDEX EXPRESS
. SET TAG TO COMMAND
. SAVE DATA TO aWorkArea
. CLOSE ALL
. RESTORE DATA FROM aWorkArea
Source/Library:
DCSTD.CH
See Also:
dc_datarest()
INTERP
Seek a record in a set of Scoped Records
Syntax:
SEEK < xValue >
Arguments:
< xValue > is any value of the same type as the index key for
the selected order. If no argument is passed then a GUI dialog
will be displayed for entering a value. See FIND and DC_Find()
for a description of this GUI dialog.
Description:
SEEK is used to SEEK a record in a group of "scoped"
records. Scopes are set via the DC_SetScope() function. This
functions identical to the Xbase++ dbSeek() function except if
the record is not found or is outside the range of the scope,
it behaves as follows:
1. If the record is not found the record pointer is placed at
Eof() and a .FALSE. is returned.
2. If the record is found but the indexkey() value is less
than the top scope, the record pointer is placed at the
beginning record of the scope and a .FALSE. is returned.
3. If the record is found but the indexkey() value is greater
than the bottom scope, the record pointer is placed at the
last record of the scope and a .FALSE. is returned.
4. If the record is found and the indexkey() value is within
the range of the top and bottom scope, the record pointer
is placed at the found record and a .TRUE. is returned.
If no scope is set, then SEEK simply calls dbSeek().
Examples:
. USE EXPRESS VIA FOXCDX INDEX EXPRESS
. SET SCOPE TOP TO 'DC_F'
. SET SCOPE BOTTOM TO 'DC_H'
. SEEK 'DC_G'
. ? Eof()
.F.
Source/Library:
DCSTD.CH
See Also:
dc_dbseek()
dc_find()
HUNT
FIND
INTERP
Select a database from a picklist of open files
Syntax:
SELECT
Arguments:
None.
Description:
SELECT will pop-up a picklist of all work areas and
display the alias and database file name open in each work
area. It will also allow the user to select an unused work
area to open a new database.
If arguments are passed, then SELECT functions identical to the
Xbase++ SELECT command. If no arguments are passed, SELECT
uses the DC_DbfSel() function to select or open a new database.
Examples:
. SELECT
Source/Library:
DCSTD.CH
INTERP
Pop up an editing screen for all SET environment variables
Syntax:
SET [ < cSetName > ]
Arguments:
< cSetName > is the name of the SET environment variable to
edit. If this parameter is not passed, then a picklist of all
environment variables will be displayed for editing.
Description:
SET is used to invoke a GUI editor for observing or
modifying the value of any SET value in the environment.
The SET environment is the complete set of standard Xbase++
SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
Examples:
. SET
. SET DEFAULT
. SET ODIR
Source/Library:
DCSTD.CH
See Also:
dc_setedit()
INTERP
Save the SET environment to a file
Syntax:
SAVE SET TO < cFileName >
Arguments:
< cFileName > is the name of the file to create. If no extension
is given then the extension .DCA will be added.
Description:
SAVE SET is used to save the values of all Xbase++ and
eXPress++ environment variables to a file to be later restored
by RESTORE SET or DC_SetRest().
The SET environment is the complete set of standard Xbase++
SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
Examples:
. SAVE SET TO MYFILE.SET
Source/Library:
DCSTD.CH
See Also:
dc_setsave()
dc_setrest()
INTERP
Restore the SET environment from a file
Syntax:
RESTORE SET FROM < cFileName >
Arguments:
< cFileName > is the name of the file previously created by
DC_SetSave() or SAVE SET. If no extension is given then the
extension .DCA will be added.
Description:
RESTORE SET is used to restore the values of all Xbase++ and
eXPress++ environment variables from a file previously created
by SAVE SET.
The SET environment is the complete set of standard Xbase++
SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
Examples:
. SAVE SET TO MYFILE.SET
. DoSomethingThatChangesEnvironment()
. RESTORE SET FROM MYFILE.SET
Source/Library:
DCSTD.CH
See Also:
dc_setrest()
dc_setsave()
INTERP
A Complex Pull-Down Menu Editor
Syntax:
MENU EDIT [ < acMenu > ] ;
[CREATE]
Arguments:
< acMenu > is the name of the menu or the menu contents. If
< acMenu > is a character string, it is a name of up to eight (8)
digits. If < acMenu > is an array, it must conform to the
specifications of a menu array defined in the RETURNS section.
If a menu name is passed then the DCMENU.DBF menu dictionary
database will be searched and all menu items that match the
menu name be loaded into an array for editing. If a NIL is
passed, then a pick-list of all menus stored in the DCMENU.DBF
database will be displayed. If none is chosen, then it will
be assumed that you wish to create a new menu.
CREATE will create a new menu.
Description:
MENU EDIT is a menu-designer system that will create complex
pull-down menus. Menus are designed by entering information in
a browse-style window that displays menu items and sub-menus in
an easy-to-read "indented" format. The designed menu can be saved
to an array, an array file, the data-dictionary, or to source-code
which can be compiled and run by your application.
MENU EDIT creates menus that are passed as an array to the
DC_MENUMAIN() (Text Mode Reader) or DC_MENUOSYS() (Gui Mode Reader)
functions for execution. During the menu design process, the
menu can be executed in a WYSIWIG fashion to provide instant
feedback that the menu will function as it has been designed.
MENU EDIT supports all the features of DC_MENUMAIN() and
DC_MENUOSYS() including sub-sub-menus, automatic mouse support,
message boxes, help-codes, accelerator keys, code-blocks, and access
keys. In addition, DC_MENUEDIT() supports conditional compiling of
menu items to exclude key items at run-time based on a key list that
is passed to DC_MENURUN() or DC_MENUCOMPILE() or based on a
code block.
Examples:
/* -- Edit the Main Menu -- */
MENU EDIT MAINMENU
Source/Library:
DCSTD.CH
See Also:
dc_menuedit()
dc_menuload()
INTERP
Modify the structure of a database
Syntax:
MODIFY STRUCTURE [TO < cNewFileName >]
Arguments:
TO < cNewFileName > is the name to assign to the new modified file.
If no argument is given, then the new file name will be the
same as the original and the original file will be renamed to
the same name as the file alias with a .DBK extension. If the
file contained at least one memo field, then the memo file
will be renamed to the same name as the file alias with the
.DTK extension.
Description:
MODIFY STRUCTURE is used to change the structure of the
database in the current work area and restore all the data in
the file or save the database to a new name.
You can add perform the following operations with a GUI dialog:
1. Add a new field
2. Delete a field
3. Move a field
4. Rename a field
5. Replicate a set of new fields
6. Change the type of a field
7. Change the length of a field
All data in the former file will restored to the modified
file except for any fields that were deleted.
Examples:
. USE COLLECT
. MODIFY STRUCTURE TO COLLECT2
Source/Library:
DCSTD.CH
See Also:
dc_modstru()
dc_struupdate()
INTERP
Maintain the "Lock" definition database
Syntax:
LOCK EDIT
Description:
LOCK EDIT is used to maintain a database of "Locks"
which are put onto files, menu items, or fields when
designing an application. This database, DCLOCKS.DBF, is used
as a reference only and is not needed to establish locks on menu
items or other locks. The database simply provides a handy
picklist to choose a lock to put on an item. The database
assigns names and codes to locks.
Examples:
. LOCK EDIT
Source/Library:
DCSTD.CH
See Also:
dc_lockmaint()
dc_usermaint()
INTERP
Lock the current record
Syntax:
LOCK
Arguments:
None.
Description:
LOCK is used to lock the currently selected record
before attempting to replace field data.
Examples:
. USE COLLECT
. GO 5
. LOCK
. COLLECT->condition := 'P'
. UNLOCK
Source/Library:
DCSTD.CH
See Also:
dc_reclock()
UNLOCK
INTERP
Lock the current file
Syntax:
LOCK FILE | ALL
Arguments:
None.
Description:
LOCK FILE is used to lock the currently selected file before
attempting to perform database operations that modify the data
in mulitiple records.
Examples:
. use customer
. LOCK ALL
. replace print_flag with .F. for print_flag
. UNLOCK ALL
Source/Library:
DCSTD.CH
See Also:
dc_filock()
INTERP
Pack the current database
Syntax:
PACK
Arguments:
None.
Description:
PACK is a high-level command that will pack the database
in the currently selected work area. This function does not
use the Clipper dbPack() function but instead packs the file as
follows:
1. Displays a progress odometer during the packing process.
2. Optimizes size of memo fields (removes dead space).
3. Creates a backup file.
Examples:
. USE EXPRESS INDEX EXPRESS.CDX VIA FOXCDX
. PACK
Source/Library:
DCSTD.CH
See Also:
dc_pack()
INTERP
Run a Program from the Program Dictionary
Syntax:
PROGRAM [ < cProgName > ] ;
[WITH < aParams >]
Arguments:
< cProgName > is the Tag Name of the program in the DCPROG.DBF
Program Catalog file. If no parameter is passed, then a pick-
list of available programs will be displayed. If an array
< aProgram > is passed then it must conform to the structure
of the array returned by DC_PROGLOAD() or interpreted
programs.
WITH < aParams > is a single-dimensional array of parameters to pass
to the program being interpreted. There should be one element
in the array for each parameter included in the PARAMETERS
statement in the interpreted program. If less parameters are
passed than specified in the PARAMETERS statement, the unpassed
parameters will be initialized to NIL.
Description:
PROGRAM is used to load a program from the DCPROG.DBF
program catalog database and execute the program using the
interpreter or runtime compiler. Programs in the dictionary
are pre-designated as "Interpreted" or "Compiled".
Interpreted programs may contain any command that can be
intrepreted at the dot-prompt plus the same type of structural
elements as standard Clipper programs such as DO..WHILE and
FOR..NEXT loops, IF..ELSE, DO..CASE statements, PARAMETERS
statement and RETURN value, however they cannot contain
CLASS statements, FUNCTION statements, LOCALS or STATICS. If
a program is designated to be Interpreted, the program is
passed to the DC_INTERPRET() function.
Compiled programs may contain any type of code that can be
compiled with the XPP.EXE compiler. IF a program is designated
to be Compiled, the program is first compiled by the DC_COMPILE()
function, then loaded into memory with the DC_OBJLOAD() function
and executed.
Examples:
. PROGRAM TEST WITH { Date(), Time() }
Source/Library:
DCSTD.CH
See Also:
dc_program()
INTERP
Maintain the DCPROG.DBF Program Dictionary File
Syntax:
PROGRAM MAINTENANCE
Arguments:
None.
Description:
PROGRAM MAINTENANCE is used to maintain a database catalog of
programs for later interpreting with PROGRAM or DC_PROGRAM().
This system in intended for creating small programs that may
be run from the dot-prompt, menus, data-entry validations, etc.
PROGRAM MAINTENANCE provides an editor, search routines, print
routines, etc.
Programs are saved in a MEMO field in the DCPROG.DBF/.DBT file.
These "interpreted" programs are not intended to replace compiled
code but are instead a handy way of creating additional on-the-fly
functions and procedures to give a data-driven system some extra
convenience and functionality.
Examples:
. PROGRAM MAINT
Source/Library:
DCSTD.CH
See Also:
dc_progmaint()
INTERP
Dynamically load an Xbase++ compiled .OBJ for execution
Syntax:
OBJ LOAD < cObjName > ;
[RUN [< bcRunProc >] ]
Arguments:
< cObjName > is the name of the .OBJ file to link. If no drive/
directory is included in the file name, then the .OBJ must
exist in the directory specified by the SET ODIR command, ODIR=
in DCLIP.SYS, or DC_SETT('ODIR',< path >).
RUN < bcRunProc > will be automatically execute the
< bcRunProc >
procedure. This may be the name of a procedure or function
in quotes or a code block.
Returns:
A logical .TRUE. if the .OBJ file could be linked into a .DLL
and the .DLL loaded for execution, .FALSE. otherwise.
Description:
OBJ LOAD is used to "dynamic-link" an Xbase++-compiled .OBJ
file into memory for execution of any functions within the
compiled .OBJ. This is done by creating a temporary .DLL with
the same name as the .OBJ file and loading the .DLL.
Examples:
. OBJ mytest RUN test
Source/Library:
DCSTD.CH
See Also:
dc_objload()
dc_compile()
INTERP
Purge duplicate records from a database
Syntax:
PURGE ON < exp1 > ;
[TO < file >] ;
[RETAIN < exp2 > ;
[MAX | MIN]] ;
[FIELD < field >]
Arguments:
ON < exp1 > is an expression of field names to use in determining
how to determine the duplication of records. For example, if
you want to purge records that have duplication of information
in which LAST_NAME, FIRST_NAME and STREET are identical, then
use UPPER(LAST_NAME+FIRST_NAME+STREET) as the expression.
If an < expression > is not given then a window will appear with
a user prompt to enter an expression or to press ALT-F for the
index builder. If ALT-F is pressed, a pick-list of fields will
appear to aid in building the expression.
TO < file > will create a new database that contains the purged
records.
RETAIN < exp2 > is an expression that determines which record of
the set of duplicate records to retain (not mark for deletion).
The default is "RECNO()". MAX will retain the maximum value.
MIN will retain the minimum value. The default is MIN.
FIELD < field > is the name of an optional numeric field in the
database being purged. This field is used to write a number from
0 to N. If there are no duplicates, then a 0 will be written to
the record. If there ARE duplicates then a 1 will be written to
the RETAINED record and a number from 2 to N will be written to
each duplicate.
Description:
PURGE is used to remove records from a database that have
duplicates based on a test of specified fields. The purged
records will be marked as *deleted* but will not actually be
removed from the data file until the file is packed. This will
allow you to BROWSE the file and monitor the purged information
before completing the final reduction.
PURGE actually creates a temporary index file based on an
expression that is passed or created from the pop-up index
builder.
Purged records can be written to a new data file for recovery
at any time.
Notes:
PURGE will not actually remove duplicate records from the
database, but will instead mark them for deletion. To complete
a full purge of the duplicate records, you must PACK the
database. If you wish you recall the deleted records after a
purge, use the command RECALL ALL.
Examples:
/* Purge all duplicate records that have an exact match
for Last Name, First Name, Phone Number and Street.
Retain the record that has the latest Mail Date */
. USE MAILLIST
. PURGE ON LAST+FIRST+PHONE+STREET RETAIN MAIL_DATE MAX
. BROWSE
. PACK
Source/Library:
DCSTD.CH
See Also:
dc_purge()
INTERP
Locate a record
Syntax:
LOCATE [ < clauses > ]
Arguments:
See the Xbase++ documentation for a description of < clauses >.
Description:
LOCATE is a front-end to the Xbase++ LOCATE command and
supports all the same options. It functions identically with
the exception that it displays a progress bar during the
index process and it also stays within any scope that was
previously set with SET SCOPE or DC_SetScope().
Examples:
. USE EXPRESS VIA FOXCDX
. LOCATE FOR COMMAND = 'dc_dot'
Source/Library:
DCSTD.CH
See Also:
dc_dblocate()
dc_dbcontinue()
CONTINUE
INTERP
Establish the working directory for .OBJ files
Syntax:
SET ODIR TO < cObjDirectory >
Arguments:
< cObjDirectory > is the directory name to place .OBJ files.
Description:
SET ODIR is used to define the drive and directory to place
.OBJ files when compiling .PRGs with the COMPILE | XPP
command.
Examples:
. SET PDIR TO \MYAPPS\PRG
. SET ODIR TO \MYAPPS\OBJ
. XPP MYMENU
. XPP MYPROCS
Source/Library:
DCSTD.CH
See Also:
WHERE PUBLIC
INTERP
Set and/or view an environment variable
Syntax:
SET [ < cSetName > ] [TO < xValue >]
Arguments:
< cSetName > is the name of the SET environment variable to
edit. If this parameter is not passed, then a picklist of all
environment variables will be displayed for editing.
If this is an Xbase++ name such as EPOCH, DATEFORMATE, PATH,
DEFAULT etc. the value will be processed by the Xbase++ Set()
function.
If it is a eXPress++ name such as ODIR, EDITOR, etc, the
value will be processed by the DC_Sett() function.
TO < xValue > is the value to set.
Description:
SET is used to set or read an Xbase++ or eXPress++ environment
variable.
SET with no parameters will invoke a GUI editor for observing
or modifying the value of any SET value in the environment.
The SET environment is the complete set of standard Xbase++
SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
Examples:
. SET
. SET DEFAULT
. SET ODIR
. SET DEFAULT TO ..\XDOC
. SET EDITOR TO \MEW\MEW32.EXE
Source/Library:
DCSTD.CH
See Also:
dc_setedit()
INTERP
Establish the working directory for .PRG files
Syntax:
SET PDIR TO < cPrgDirectory >
Arguments:
< cPrgDirectory > is the directory containing the source .PRG
files.
Description:
SET PDIR is used to define the drive and directory to search
for .PRG files when searching for source code using such
commands as EDIT FILE, COMPILE, etc.
Examples:
. SET PDIR TO \MYAPPS\PRG
. SET ODIR TO \MYAPPS\OBJ
. XPP MYMENU
. XPP MYPROCS
Source/Library:
DCSTD.CH
See Also:
EDIT FILE
dc_editprg()
INTERP
Establish the type of prompt for the Dot-prompt
Syntax:
DEFAULT will display the current setting of the SET DEFAULT
directory. This is the directory selected by the
SET DEFAULT command or DC_SETT('DEFA') function. Use this
option if you wish to see the default directory in which
databases, indexes, form files, etc. will be opened and
created. If SET DEFAULT is empty, i.e, SET DEFAULT TO, then
databases will be created in the current DOS directory.
DOS will display the current selected DOS directory. This
is the directory selected by the CD command or DC_CHDIR()
function. Low-level file functions such as FOPEN(),
DC_TXTOPEN() etc. will look in the DOS directory for files
if no path is included in the file name.
< expression > is any expression that returns any value.
Description:
SET PROMPT is used to enable or disable the display of the
directory prompt that is displayed before the dot on the
command line or to establish a custom prompt.
Source/Library:
DCSTD.CH
See Also:
dc_dot()
INTERP
Toggle automatic File/Record locking
Syntax:
SET AUTOLOCK ON | OFF | < lToggle >
Arguments:
ON will automatically lock and unlock the current record or
file whenever a dot-prompt command is issued that requires a
lock. (DEFAULT).
OFF will disable the automatic record-locking feature.
< lToggle > if .T. is equivalent to ON, if .F. is equivalent to
OFF.
Description:
SET AUTOLOCK is used to enable or disable the automatic record-
locking feature of eXPress++ when using certain dot prompt
commands. Many Xbase++ commands will require a record lock
whenever the command modifies data in the current work area.
If AUTOLOCK is ON, then the record lock is issued automatically.
If AUTOLOCK is OFF, then the DBRLOCK() function or LOCK command
must be issued at the dot-prompt otherwise a "lock required"
error may be displayed.
SET AUTOLOCK will not affect any application code or any eXPress++
menus, only commands issued at the dot prompt.
Examples:
. USE SALES SHARED
. SET AUTOLOCK OFF
. DELETE
Lock Required DBFNTX[1022]
. SET AUTOLOCK ON
. DELETE
. RECALL
Source/Library:
DCSTD.CH
INTERP
Create a command to run a batch file
Syntax:
SET BATCH TO < cCommandVerb >, < xcBatchFile >
Arguments:
< cCommandVerb > is the name of the command you wish to use at
the dot prompt execute the batch file.
< xcBatchFile > is the name of the batch file to run when the
< cCommand Verb > is entered at the dot prompt. If no extension
is given, then .DCB is assumed.
Description:
SET BATCH adds command verbs to a table of commands for
processing batch (.DCB) files from a single verb command. This
is a handy method of creating quick commands to run batch
files.
Examples:
// Batch file MYMOVE.DCB contains the following commands:
// COPY FILE %1 %2
// ERASE %1
. SET BATCH TO MOVE, MYMOVE.DCB
. MOVE \DCLIP\MYFILE.TXT \JUNK
Source/Library:
DCSTD.CH
INTERP
Set Dot-Prompt command stack to DOS-Key emulation
Syntax:
SET DOSKEY on | OFF
Description:
SET DOSKEY is used to set the behavior of the dot-prompt
command stack navigator to emulate that of DOS command
stack navigators like Dos-Key or OS/2.
The normal behavior allows commands to be reissued in
sequence and expedite processes that are used again and
again. Dos-Key emulation automatically copies the selected
command to the bottom of the stack after execution and
creates a blank command line for input.
Examples:
. SET DOSKEY ON
Source/Library:
DCSTD.CH
INTERP
Set the size of the Dot-prompt command stack
Syntax:
SET DOTSTACK TO < nSize >
Arguments:
< nSize > is a number from 100 to 4000.
Description:
SET DOTSTACK is used to increase the length of the Dot-Prompt
command stack array to a value greater than the default value
of 100 commands. This is desirable in the event that it is
necessary to save and restore more than the last 100 commands
with the HISTORY=<þfileþ> command in your DCLIP.SYS.
Examples:
SET DOTSTACK TO 500
Source/Library:
DCSTD.CH
INTERP
Establish the default source code editor
Syntax:
SET EDITOR TO < cFileName >
Arguments:
< cFileName > is the name of the editor .COM, .BAT or .EXE
file to run when using the EDIT command.
Description:
SET EDITOR is used to define the name and path of the default
editor you wish to use when using the IDE features of eXPress++,
such as the EDIT FILE command and re-editing after compiler
errors.
Examples:
. SET EDITOR TO C:\EXPRESS\UTIL\ME2.BAT
Source/Library:
DCSTD.CH
INTERP
Establish the hot key for popping up a field list
Syntax:
SET FLDKEY TO < nInkey >
Arguments:
< nInkey > is the same as the INKEY() value for the desired key
to press to invoke the field pick-list.
Description:
The ALT-F key is the default key to invoke the Field List
window for selecting a field from the currently selected
database and/or relational databases. If you wish to reassign
this key to prevent conflict with other hot-keys, then use this
command.
Examples:
// Define ALT-P as the field list key
. SET FLDKEY TO 281
Source/Library:
DCSTD.CH
INTERP
Set percentage update of progress odometer
Syntax:
SET ODPERCENT TO < nPercent >
Arguments:
< nPercent > is a numeric value for the percentage of update
you want on the progress odometer. If you have very large
files and want to see progress more often, then it is
recommended you lower this number from the default of 5
percent.
Description:
SET ODPERCENT sets how often to update the progress indicator
odometer when using DC_ODOMETER() or DC_ODBLOCK().
Examples:
. SET ODPERCENT TO 1 // 1 percent
. index on cust_nmbr to custnmbr
Source/Library:
DCSTD.CH
See Also:
dc_odometer()
dc_odblock()
INTERP
Create a command to run a function or procedure
Syntax:
SET PROCEDURE TO < cCommandVerb >, < idExpression >
Arguments:
< cCommandVerb > is the name of the command you wish to use at
the dot prompt execute the procedure.
< idExpression > is the name of the procedure or function to
execute when the < cCommandVerb > is entered at the dot prompt.
Description:
SET PROCEDURE adds command verbs to a table of commands for
evaluating expressions from a single verb command. This is a
handy method of creating quick commands to run functions or
code blocks.
Examples:
. SET PROCEDURE TO CALLHOME, DIALOUT("714-555-1212")
. CALLHOME
. SET PROCEDURE TO HELLO, Eval({||MsgBox('Hello'),MsgBox('World')})
. HELLO
Source/Library:
DCSTD.CH
INTERP
Create a command to run an executable program
Syntax:
SET COMMAND TO < cCommandVerb >, < executable program >
Arguments:
< cCommandVerb > is the name of the command you wish to use at
the dot prompt execute the procedure.
< executable program > is the name of the .EXE to run.
Description:
SET COMMAND adds a command verb to a table of commands for
running other programs from a single verb command. This is a
handy method of creating quick commands to run executable
programs.
Examples:
. SET COMMAND TO ME, C:\MEW\MEW32.EXE
. ME
Source/Library:
DCSTD.CH
SET SCOPE
Set a scoping value for the current work area
Syntax:
SET SCOPE [TOP | BOTTOM] TO [< xValue1 >] [,< xValue2 >]
Arguments:
If the TOP clause is used then the SCOPE TOP is set to < xValue1 >.
If the BOTTOM clause is used then the SCOPE BOTTOM is set to
< xValue1 >.
If neither the TOP or BOTTOM clause are used then both the < xValue1 >
(TOP) and < xValue2 > (BOTTOM) arguments are required.
< xValue1 > and < xValue2 > are values to set. This must be a
value
that matches the current index key.
Description:
SET SCOPE is used to set a SCOPE TOP and SCOPE BOTTOM value
for establishing a "scoping range" for a work area. The eXPress++
browsing and editing systems use SET SCOPE and DC_SETSCOPE() to
store the scoping range when browsing and editing records. When
a scoping range is set, only the records that fall within the
range will appear in the browse or edit screens.
Exported Instance Variables:
Methods:
Notes:
With the exception of COMIX and Advantage Server, DC_SETSCOPE()
does not establish the scoping range at the DBE-layer level, but
instead stores the scoping information in dbCargo() as an array.
The scoping information is retrieved by record navigation
functions such as DC_DBGOTOP(), DC_DBGOBOTTOM() and DC_DBSKIP().
Examples:
. USE EXPRESS ALIAS XDOC INDEX EXPRESS.CDX
. SET ORDER TO 'COMMAND'
. SET SCOPE TO 'A','C' // set top to 'A' and bottom to 'B'
. SET SCOPE TOP TO 'A' // set top to 'A'
. SET SCOPE BOTTOM TO 'B' // set bottom to 'B'
. SET SCOPE TO // clear top and bottom scopes
. SET SCOPE TO 'H' // set top and bottom to 'H'
. SET SCOPE TOP TO // clear top scope
. SET SCOPE BOTTOM TO // clear bottom scope
Source/Library:
DCSTD.CH
See Also:
dc_setscope()
dc_clrscope()
CLEAR SCOPE
SET STATUS
Toggle display of GUI Status Window
Syntax:
SET STATUS ON | OFF | < lToggle >
Arguments:
ON will enable display of the status line.
OFF will disable the status line.
< lToggle > if .T. is equivalent to ON, if .F. is equivalent to
OFF.
Description:
SET STATUS is used to enable or disable the display of the GUI
status window at the top of the display. The status window
provides important information about the current work area.
Examples:
. SET STATUS ON
. SET STATUS OFF
Source/Library:
DCSTD.CH
See Also:
dc_dot()
SET TALK
Toggle display of pre-processed output
Syntax:
SET TALK ON | OFF | < lToggle >
Arguments:
ON will enable the echoing of preprocessed output to the
console.
OFF will disable echoing of preprocessed output (default).
< lToggle > if .T. is equivalent to ON, if .F. is equivalent to
OFF.
Description:
SET TALK is used to enable or disable the echoing of the pre-
processed output to the console. All commands entered at the
dot- prompt are passed through the pre-processor and converted
to a function or set of functions to be evaluated in sequence.
When debugging #command, #translate or #define statements in
.CH files previously loaded with the #include <þmycommandsþ>
in your DCCUSTOM.CH file. SET TALK ON will show the results
of the translation.
Examples:
. #TRANSLATE PHONE <number> => DIALOUT(<(number)>)
. #DEFINE HOME 714-555-1212
. SET TALK ON
. PHONE HOME
DIALOUT("714-555-1212")
Source/Library:
DCSTD.CH
SET USEEXCLDATA
Force Exclusive use of application databases
Syntax:
SET USEEXCLDATA on | OFF
Arguments:
ON will force databases that are opened by the eXPress++ USE
command, DC_UseArea() function, DC_WorkRestore(), DC_Dbfile(),
or any other eXPress++ function or command that opens databases
to be opened EXCLUSIVE regardless of how parameters are
passed to these functions or the setting of the SET EXCLUSIVE
system flag.
OFF will insure that databases are opened by the default
method for each function.
Description:
SET USEEXCLDATA is used to override any default settings for
opening databases and insure that they are always opened in
EXCLUSIVE mode only. This flag should be used when using
eXPress++ in "design" mode. Design mode means that the user or
programmer is designing Browse and Data-Entry screens and/or
Field Definitions. When adding or changing database fields
or packing files, they must be opened in "Exclusive" mode.
Notes:
When designing a system it is recommended that you place the
following commands in your DCLIP.SYS file:
USEEXCLDATA=ON
USEEXCLDICT=OFF
or type the following commands at the dot prompt:
SET USEEXCLDATA ON
SET USEEXCLDICT OFF
Source/Library:
DCSTD.CH
SET XPPOPT
Set the default Compiler switches
Syntax:
SET XPPOPT TO < compiler options >
Arguments:
< compiler options > is a list of options you want to pass to the
Xpp.exe compiler.
Description:
SET XPPOPT TO is used to establish a set of default options to
be used by the XPP.EXE compiler when the COMPILE or XPP command
is used at the dot-prompt to compile programs.
Examples:
. SET XPPOPT TO /i\ALASKA\XPPW32\INCLUDE /n /w /b /dDEBUGMODE
. XPP MYAPP
Source/Library:
DCSTD.CH
See Also:
SET XPPPATH
SET XPPPATH
Set the directory when the Compiler resides
Syntax:
SET XPPPATH TO < directory >
Arguments:
< directory > is the name of the directory in which the XPP.EXE
compiler exists. If XPP.EXE is already in your operating
system environment path, then SET XPPPATH is not necessary.
Description:
SET XPPPATH is used to define the directory in which the
XPP.EXE compiler resides for eXPress++ compiler operations.
Examples:
. SET XPPPATH TO \ALASKA\XPPW32\BIN
. XPP MYAPP
Source/Library:
DCSTD.CH
See Also:
SET XPPOPT
SKIP
Skip records in a set of Scoped Records
Syntax:
SKIP [ < nRecords > ] [ALIAS < alias >]
Arguments:
< nRecords > is the number of records to skip. Default is 1.
ALIAS < cAlias > is the alias of the workarea to skip.
Description:
SKIP is used to SKIP <þnþ> records in a group of "scoped" records.
Scopes are set via the DC_SetScope() function.
If a scope is not set, then SKIP simply calls dbSkip().
Examples:
. USE EXPRESS INDEX EXPRESS.CDX
. SET ORDER TO 'COMMAND'
. SET SCOPE TOP TO 'C'
. SET SCOPE BOTTOM TO 'E'
. GO TOP
. SKIP
Source/Library:
DCSTD.CH
See Also:
dc_dbskip()
STACK
Display the callstack and optionally edit the source
Syntax:
STACK
Arguments:
None.
Description:
STACK is used to display a GUI dialog listing the current call
stack and line numbers.
Clicking on an item in the list will scan the list of .OBJs
in the ODIR path to find the source of the function. If
the same named function exists in more than one .OBJ, then
all .OBJs will be listed. Clicking on the selected .OBJ will
call the default editor and pass the name and line number of
the selected source file to editor for editing.
Examples:
. STACK
Source/Library:
DCSTD.CH
See Also:
dc_callstack()
SUM
Sum numeric fields in selected database
Syntax:
SUM [ < args > ]
Arguments:
See the Xbase++ documentation for details about < args >.
Description:
SUM is used to sum numeric fields in the currently selected
database based on a set of conditions. This command functions
identical to the Xbase++ SUM command with the exception that
a progress bar is displayed during the summing and the number
of records actually summed is displayed.
If no arguments are given, then SUM uses the DC_Sum() function
to display a GUI dialog for selecting fields and options.
Examples:
. USE COLLECT
. SUM orig_price TO nPrice
. SUM
Source/Library:
DCSTD.CH
See Also:
dc_sum()
TAG
Build or add to a Record Tag Array
Syntax:
TAG [TO < aTags >] ;
[CLEAR] ;
[ FOR < for > ] ;
[ WHILE < while > ] ;
[ NEXT < n > ] ;
[ ALL ] ;
[ REST ] ;
[ RECORD < rec > ]
Arguments:
CLEAR will remove record numbers from the tag array that
meet the specified conditions, otherwise records will be
added.
TO < aTags > is an existing array of record numbers which will
display the TAG marker in the browse display. If no
argument is given then the public DCTAGS array will be
used.
The following clauses follow the conventions for database commands
documented in the Xbase++ help file:
FOR < for >
WHILE < while >
NEXT < n >
ALL
REST
RECORD < rec >
Returns:
A pointer to an array of tagged numbers.
Description:
TAG is used to add or remove record numbers from an array of
record numbers that can be used with all database commands for
performing database operations on records that are "tagged".
TAG will first check for a logical field in the database named
"TAG" and will operate on this field. If this field does not
exist, it will operate on a PUBLIC array named DCTAGS.
A manifest symbol named TAGGED may be used in any expression
at the dot-prompt. This symbol is automatically translated
to DC_TAGGED() which is the function used to test whether or
not a record has been tagged. This allows for simple use of
the tagging system by easy-to-enter commands.
Notes:
CAUTION: The eXPress++ tagging system is designed for ad-hoc
tagging of records using simple menu selection and database
commands. You will notice a gradual speed detioration as you
add more records to the tag array when browsing. This is
because the DC_TAGGED() function must scan more records in the
array. It is recommend that you refrain from tagging more than
1000 records or you may experience unacceptable slowness
during browsing.
If you need a tagging system that will support a much larger
number of records, it is recommended that you add a TAG
(logical) field to your database.
Examples:
. select customer
. TAG CLEAR ALL
. go 113
. ? TAGGED
.F.
. TAG
. ? TAGGED
.T.
. TAG CLEAR
. ? TAGGED
.F.
. TAG FOR balanceɬ
. TAG FOR zip='92001'
. TAG CLEAR FOR balance
. count for TAGGED
. label form customer for TAGGED to print
Source/Library:
DCSTD.CH
See Also:
dc_rectag()
TAG CLEAR
TAG CLEAR
Clear the Record Tag Array
Syntax:
TAG CLEAR [ALL]
Arguments:
ALL will clear all tags. If this clause is not used, only
the tag for the current record will be cleared.
Description:
TAG CLEAR will clear the current record or all tags in the
public DCTAGS array for the current work area.
Notes:
CAUTION: The eXPress++ tagging system is designed for ad-hoc
tagging of records using simple menu selection and database
commands. You will notice a gradual speed detioration as you
add more records to the tag array when browsing. This is
because the DC_TAGGED() function must scan more records in the
array. It is recommend that you refrain from tagging more than
1000 records or you may experience unacceptable slowness
during browsing.
If you need a tagging system that will support a much larger
number of records, it is recommended that you add a TAG
(logical) field to your database.
Examples:
. use customer
. GO 10
. TAG
. GO 20
. TAG
. TAG CLEAR ALL
Source/Library:
DCSTD.CH
See Also:
dc_rectagclear()
dc_rectag()
TAG
UNLOCK
Unlock the current record
Syntax:
UNLOCK
Arguments:
None.
Description:
UNLOCK is used to unlock a record after it has been locked
with LOCK, DC_RecLock(), Rlock() or dbrLock().
Examples:
. USE COLLECT
. GO 5
. LOCK
. COLLECT->condition := 'P'
. UNLOCK
Source/Library:
DCSTD.CH
USE
Open a database file in a work area
Syntax:
USE < db > ;
[FOX >] ;
[VIA < cDbe >] ;
[ALIAS < cAlias >] ;
[NEW] ;
[EXCLUSIVE] ;
[SHARED] ;
[READONLY] ;
[INDEX < list,... >] ;
[ALTERNATE < cAltDbe >]
Arguments:
NEW will open the database in a new work area. If this clause
is not used current work area will be used.
VIA < cDbe > is the DBE to use. If no argument is passed, then
the < cAltDbe > will be used followed by the current DBE.
FOX is an alternative to the VIA < cDbe > clause. This clause will
set FOXCDX as the dbe.
< cDatabase > is the name of the file to open. If no drive and
directory is included then the file must exist in the SET
DEFAULT directory or SET PATH directory.
SHARED will open the database in SHARED mode, otherwise it will
be opened in EXCLUSIVE mode.
READONLY will open the database for Read operations only.
< cAlias > is the ALIAS to assign to the work area. If no
argument is passed then the prefix of the database name will
be used as the alias.
INDEX < list > is a list of associated indexes to open.
ALTERNATE < cAltDbe > is an alternate DBE to use if the database
cannot be opened by the primary < cDbe > driver.
Description:
USE is similar to the Xbase++ USE command and can be used as a
replacement for opening databases. This command tests the
validity of a database and it's associated memo file (if it
exists) before attempting to open it to prevent common errors.
Working with different database drivers can make it difficult
to determine the cause of an open error. This command is
designed to test a database to make sure it is a proper type.
Parameters passed to USE are identical to the Xbase++ USE
command so this command can be used as a replacement.
Examples:
. USE EXPRESS FOX INDEX EXPRESS.CDX
Source/Library:
DCSTD.CH
See Also:
dc_usearea()
USER EDIT
Maintain the DCUSERS.DBF User Database
Syntax:
USER EDIT [ < cUserID > ]
Arguments:
If the < cUserID > argument is passed, then the record that
contains the USR_ID matching < cUserID > will be edited,
otherwise all records will be available for browsing and
editing.
Description:
USER EDIT is used to maintain the DCUSER.DBF database
for establishing User ID's, Names, Passwords, Access Keys,
etc.
Examples:
. USER EDIT
Source/Library:
DCSTD.CH
See Also:
dc_usermaint()
UTIL
A menu of database utilities
Syntax:
UTIL
Description:
UTIL provides a set of general-purpose database utilities
to perform menu-driven, complex database operations on the
currently selected work area.
Menu Selections
---------------------
Create Database
Display Structure
Modify Structure
Copy Structure
Append Records
Copy Records
Import a Data File
Replace Data
Copy Fields
Delete Records
Recall Records
Sort Database
Join with Database
Count Records
Sum Data Fields
Average Data Fields
Disk Directory
Insert Blank Record(s)
Pack DataBase
Zap Database
Import/eXport Memos
Purge Duplicate Records
Examples:
. USE COLLECT
. UTIL
Source/Library:
DCSTD.CH
See Also:
DC_Util()
WHERE PUBLIC
List .OBJ(s) that contain public function
Syntax:
WHERE PUBLIC [ < cProc > ]
Arguments:
< cProc > is the name of the procedure/function to find.
If this argument is empty, a GUI dialog will be displayed to
prompt the user for a procedure name.
Description:
WHERE PUBLIC is used to scan a set of .OBJ files and list
the names of all .OBJs that contain a PUBLIC declaration of
a specified function.
A file named DCPUBLIC.TXT will be created using the Xbase++
XPPFILT.EXE utility program. This file will contain a listing
of all public functions in all .OBJs.
Notes:
All .OBJs in the search directory(s) established by the
SET ODIR (eXPress++) environment variable. If this environment
variable is empty, then the search path is established by the
operating system SET OBJ environment variable.
Examples:
. SET ODIR TO C:\TEST;F:\TEST
. WHERE PUBLIC TEST
Source/Library:
DCSTD.CH
See Also:
dc_objpublic()
WHERE SOURCE
Display a list of .OBJ/.PRG files containing PUBLIC proc
Syntax:
WHERE SOURCE < cProc >
Arguments:
< cProc > is the name of the PUBLIC procedure to find.
Description:
WHERE SOURCE is used to display a list of .OBJ files and the
location of the original source that contain a specified
PUBLIC procedure.
Notes:
This function assumes that the source file has the same name
as the obj file except with the .PRG extension. This function
is needed when it is not known which directory the source
resides.
Examples:
. WHERE SOURCE MAIN
Source/Library:
DCSTD.CH
See Also:
dc_objsourcelist()
WHERE PUBLIC
ZAP
Zap the database
Syntax:
ZAP
Arguments:
None.
Description:
ZAP is a front end to the Xbase++ dbZap() function that
tests if a file is open exclusive and then prompts the user
to reopen it exclusive before Zapping the file. In either
case, the user is given the option of cancelling the operation.
Examples:
. USE COLLECT
. ZAP
Source/Library:
DCSTD.CH
See Also:
dc_zap()
DBU
A Gui Database Management Utility
Syntax:
DBU [ < args > ]
Arguments:
< args >
< arg1 > thru < arg15 > may be any of the following arguments:
/an - Load ADSDBE driver (.NTX/.DBT support)
/ac - Load ADSDBE driver (.CDX/.IDX/.FPT support)
/dbe:< default dbe name >
/tbl:< database name >
/ind:< index list (separated by commas)
/odbc - Load ODBC driver
/dsn:< data source name > - ODBC (use a + for each space in name)
/uid:< user id > - ODBC
/pwd:< password > - ODBC
/dbq:< database name > - ODBC
/dll:< dllname > - Load a dynamic link library
/srv:< server name or drive letter > - ADSDBE
/obj:< objfilename > - Load an .OBJ file
/proc:< procedure > - Run a procedure ( with parameters)
Description:
DBU is a database management utility that can be used to
edit databases using any DBE including ADSDBE and ODBCDBE.
DBU is an MDI-based dialog that contains a status window at
the top of the dialog. This status window displays information
about the currently selected work area and also contain some
pushbuttons to popup further status windows.
A menu at the top of the dialog provides a complete set of
database utilities, searching features and printing features.
It also allows for an MDI child browse/edit window to be created
for each open work area. When a browse/edit window is given
focus with the mouse, the work area of that window is selected
and the status of the selected work area is displayed at the
top of the dialog window.
All MDI child windows are opened in the same thread as the
parent window.
Examples:
DBU /odbc, /dsn:dBASE+Files, /adsntx
Source/Library:
DCSTD.CH
See Also:
dc_dot()
dc_dbu()