campo-sirio/cb5/read.me
alex a0f5e0898b This commit was generated by cvs2svn to compensate for changes in r975,
which included commits to RCS files with non-trunk default branches.

git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
1995-02-06 15:33:45 +00:00

811 lines
33 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$read.me (c)Copyright Sequiter Software Inc., 1992-1993.
All rights reserved.
----------------------------------------------------------
README - Table of Contents
I. Introduction
II. CodeBase Electronic Documentation Files
(Including additional CodeControls getting started
documentation.)
III. CodeBase Manual and Code Revisions
IV. Bit Optimization Query Technology
V. CodeBase Interactive for DOS (CID)
VI. Examples
VII. Using CodeScreens with CodeBase 5.1
VIII. CodeBase Public-Access: Sequiter BBS and Compuserve Access
IX. Accessing More Than 20 Files in DOS and Windows
X. CodeBase Multi-Platform C++ Usage
----------------------------------------------------------
I. Introduction
CodeBase 5.1 serial and version numbers can be found on the
inside-front covers of the supplied Reference Manual.
This CodeBase 5.1 release supports the following compilers:
i) Borland C++ 3.1, 4.0
ii) Microsoft C++ 7.0
iii) Microsoft C++ 8.0 ( Visual C++ )
iv) Microsoft C++ 8.0 NT ( Visual C++ for NT )
v) Watcom C++ 9.0, 9.5
vi) Borland 1.0 for OS/2
vii) IBM C Set ++ for OS/2
Additional compiler support will be added as it becomes available.
----------------------------------------------------------
II. CodeBase Electronic Documentation Files
It is highly recommended that any installed documentation
files be read in addition to the CodeBase manuals.
The various documentation files provide additional specific
information not found in the CodeBase manual. Please note
that only documentation files relevant to the options
installed will be present on your drive after installation.
All electronic documentation files have been suitably
formatted for hard-copy printing. To print any document,
simply direct that file to your printer, using the 'print'
command.
The complete list of documentation files that are present
on the CodeBase disk are as follows:
GENERAL DOCUMENTATION:
$READ.ME General user information, manual changes/updates,
and installation information. Always installed.
INSTALL.DOC Information on CodeBase installation. Includes
manual unfolding documentation.
CODEREP.DOC Further information on CodeReporter. Includes
important information regarding the building of
the CodeReporter launch utility executables.
Located in subdirectory \CODEBASE\CODEREP\.
CODECTRL.DOC Documentation on how to get started with
CodeControls in the various configurations.
Located in subdirectory \CODEBASE\CODECTRL\.
COMPILER DOCUMENTATION:
COMPILER.DOC Information specific to the installed compiler.
EXAMPLES.DOC Information on usage of the provided source code
examples.
TEST.DOC Information on usage of the CodeBase test
programs
----------------------------------------------------------
III. CodeBase Manual and Code Revisions
The following are corrections to the CodeBase 5.1 printed documentation:
Getting Started with CodeBase 5.1 :
1. Running an Example (page 13)
The referenced batch file CB5WIN.BAT does not exist; the
appropriate batch file is C5AP_WIN.BAT and its definition
file C5AP_WIN.DEF. The example should read
C:\MYDIR> COPY C:\CODEBASE\MSC8\C5AP_WIN.*
C:\MYDIR> COPY C:\CODEBASE\WINDOWS\CB5FOX.DLL CB5.DLL
2. Compile & Link Example (page 13)
Again, the Windows example D4EX_WIN.C may be compiled with the
following DOS command
C:\MYDIR> C5AP_WIN D4EX_WIN
3. Building Libraries (page 20)
When installed CodeBase 5.1 does not copy a FoxPro compatible
version of the DLL into the CODEBASE\CODECTRL sub-directory.
The appropriate DLL must be copied into your working directory
from the CODEBASE\WINDOWS subdirectory and renamed CB5.DLL.
4. Compile & Link (page 23)
The referenced batch file CB5WIN.BAT does not exist; the
appropriate batch file is C5AP_WIN.BAT and its definition
file C5AP_WIN.DEF. The example should read
C:\MYDIR> COPY C:\CODEBASE\MSC8\C5AP_WIN.*
C:\MYDIR> COPY C:\CODEBASE\WINDOWS\CB5FOX.DLL CB5.DLL
C:\MYDIR> COPY C:\CODEBASE\SOURCE\*.H
C:\MYDIR> COPY C:\CODEBASE\EXAMPLES\D4EX_WIN.C
C:\MYDIR> C5AP_WIN D4EX_WIN
5. C5AP_WIN.DEF not C5WIN.DEF (page 24)
Item 4 under DLL and VBX should read:
Link CodeBase as a DLL as discussed above (ie. include
C5AP_WIN.DEF in project).
6. DLLINFO Utility (page 28)
The described DLLINFO utility does not exist on the CodeBas
diskettes. The example programs d4ex_win.c and d4exampl.c
will preform the same functions once compiled and run.
Alternatively, the correct DLL can either be copied from the
CODEBASE\WINDOWS subdirectory or can be rebuilt with the
appropriate batch or project file (ie. CB5.BAT or CB5.PRJ )
CodeBase 5.1 USER'S GUIDE:
1. .NTX Descending Order Tags (starting page 105)
DESCEND support for numeric or date tags are not currently
supported. Ignore any reference to numeric or date tag use with
the DESCEND function wherever noted. As a work-around, a tag can
be created by subtracting the numeric key from a large constant
numeral.
eg. For Field 'NUM', index on '9999999999 - NUM'.
2. Opening Index Files (page 115)
New Functions: 't4create' should be 'i4create'.
CodeBase 5.1 REFERENCE GUIDE:
1. CodeBase Settings and Variables addendum (page 8)
New Conditional Compilation Switch. 'S4FLUSH' may be defined
if a hard-flush is required when writing data to disk:
S4FLUSH This switch automatically calls function file4flush()
whenever a write() occurs. This switch is not usually
required, since a write() should perform a flush, but
some environments do not flush data immediately.
S4FLUSH is meant to be used with these environments.
See function file4flush().
2. CODE4.lock_attempts Clarification (page 17)
If CODE4.lock_attempts is greater than zero, it is the
number of times a CodeBase function will attempt to lock before
returning r4locked.
If CODE4.lock_attempts is (int) -1, CodeBase retries until
it succeeds.
Any other value for CODE4.lock_attempts is undefined.
3. file4flush() (page 160)
The 'NOTE' at the bottom of the page is incorrect. S4WINDOWS
does not have to be defined. file4flush() may be used under DOS
or other operating systems.
4. relate4lock() (page 226)
Under 'Usage', please note that the return value of relate4lock()
is of type 'int'.
Usage: int relate4lock( RELATE4 *relate )
5. The Comparison Function (page 235)
At the bottom of the page is a small table with 'Return' and
'Meaning' headings. The '> 0' return should instead read:
> 0 The value pointed to by p1 is greater than p2.
6. e4hook() (page 316)
'Description' should instead read:
The purpose of this function is to allow the programmer to
easily alter error reporting.
When CodeBase is built with conditional compilation switch
S4ERROR_HOOK, e4hook() is called by e4(), e4describe() and
e4severe() to display error messages. Function e4hook() must be
created by the user. An example shell for function e4hook() is
provided at the top of file "E4ERROR.C". To modify error
reporting, alter e4hook() to display error messages as desired.
Alternatively, to turn off error reporting entirely, just define
S4OFF_ERROR.
7. e4severe() (page 320)
The parameter listing under 'Usage' should not include
parameter 'CODE4':
Usage: void e4severe( int err_code, char *desc )
8. d4append_data() (page 43)
The use of this function is no longer recommended because of
the difficulty in updating the file headers.
9. CODE4.mem_size_memo_expr (page 21 )
New CodeBase setting:
Usage: unsigned CODE4.mem_size_memo_expr
Description:If a memo field has a length over 'CODE4.mem_size_memo_expr',
the length over this value is ignored by the expression
evaluation functions.
For example, function expr4len() assumes that the memo
field has exactly this length. Functions expr4vary()
and expr4key() ignore the memo field information over
this length. In addition, if a memo field's length is
less than 'CODE4.memo_size_memo_expr', then expr4vary()
and expr4key() add null characters to the end of the
result. The number of null characters added to the end
is 'CODE4.mem_size_memo_expr' minus the actual memo
field length. This effect is the same as when dealing
with trimed fields.
By default, CODE4.mem_size_memo_expr is 1024.
10.date4format_mdx() (page 116)
In 'Description', the value returned should be '1.0E100', not
'1.0E300'.
MANUAL CORRECTIONS AND ADDITIONS FOR CODEREPORTER 2.0
The documentation for function report4printerDC does not indicate
the value of the returned DC. This handle to a device context is
the previously specified DC ( if one was set ) or NULL if one was
not set. It is the programmers's responsibility to free the
returned DC.
CodeBase SOURCE CODE CHANGES:
Note: Notices of fixes to CodeBase 5.1 will be
updated on files contained on Sequiter's BBS system.
For more information, refer to section
"CodeBase Public-Access Bulletin Board System."
CodeBase BATCH FILE CHANGES:
Note: CodeBase batch files no longer build import libraries
as they are no longer needed. Ordinal exports/imports in
the definition files allow the user to recompile the
DLL without having to recompile the application. If the
import library is needed it can always be created later.
----------------------------------------------------------
IV. Bit Optimization Query Technology
When CodeBase 5.1 is able to use Bit Optimization Query
Technology (BOT) when performing queries, the performance
improvements can be staggering. In addition, there are
specific things that you can do to ensure that CodeBase 5.1
is able to use BOT.
First of all, BOT capabilities are built into the
CodeBase 5.1 relate/query module, the report module and
into CodeReporter. The principle of the technology involves
using index information to quickly return query results.
For example, if you have an 500,000 record
invoice item data file and you are interested in sales
of product "GIZMO". Then the likely query expression
would be "product='GIZMO'". In this case, if the
data file was indexed on field "PRODUCT", then CodeBase 5.1
would automatically take advantage of the index to
immediately return the query results.
So to use BOT, you need to do the following:
1. Make sure that the master data file's index
file(s) are opened.
2. Specify a query expression containing, in whole or
in part, the tag key compared to a constant.
The query expression is set using function
relate4query_set() or is set interactively
under CodeReporter.
3. BOT is effective only when the query expression
involves the master data file.
Example:
Assume that master data file CUSTOMER.DBF contains fields
L_NAME, F_NAME, AGE, DT and COMPANY. It has a production
index file with the following tag key expressions:
L_NAME Type Character
UPPER(COMPANY) Type Character
AGE Type Numeric
DTOS(DT) Expression DTOS(DT) returns a
result of Character even though
field DT is of type Date.
In this case the following queries can take
advantage of BOT.
Query Expression Explanation
L_NAME="SMITH" L_NAME is a tag expression which
is compared to a constant.
L_NAME>="S" .AND. Again there are two comparisons
L_NAME<="T" of a tag expression against a
constant. Both parts of the
expression are use BOT.
L_NAME="SMITH" .AND. Only the first part of the
F_NAME="JOE" expression can use BOT. However,
as this first part narrows the
query result down considerably,
the overall performance
will still be very exceptional.
UPPER(COMPANY)="IBM" Again, this is a tag expression
compared to a constant. In this
case, the tag expression
is more complicated as it
involves a function.
Regardless, BOT is used.
UPPER(COMPANY)="IBM" .AND. Both parts of the expression use
L_NAME="SMITH" BOT.
AGE>50 Even though the type of AGE is
Numeric, we still have an tag
expression being compared to
a constant.
AGE > 25*2 25*2 is still a constant even
though it is a complicated
constant.
DTOS(DT)>="19930101" This would return all records
where the date value in DT is
greater than or equal to
January 1st, 1993. If the
tag expression was DT instead of
DTOS(DT), then a query expression
such DT>=CTOD("01/01/93") would
also use BOT. However, you have
to be careful when using CTOD
because the format of its
parameter depends on the date
picture set in
'CODE4.date_format'.
Here are some expressions which cannot use BOT.
Query Expression Explanation
F_NAME="JOE" There is no tag based on F_NAME.
L_NAME+F_NAME="SMITH" There is no tag based on
L_NAME+F_NAME. Even though there
is a tag on L_NAME, it is not
identical to the expression being
compared to "SMITH".
COMPANY="IBM" There is no tag based on COMPANY.
The tag is UPPER(COMPANY).
Again, the tag expression must
match the exression being
compared to the constant exactly.
L_NAME=F_NAME This expression cannot use BOT
because F_NAME is not a constant
- it is a field.
----------------------------------------------------------
V. CodeBase Interactive for DOS (CID)
Interactive CodeBase 5.1 for DOS (CID) is a CodeBase application
that allows the interactive manipulation of databases. Interactive
CodeBase may be used to test the operation and consequence of
CodeBase functions, or as a tutorial aid to familiarize users with
CodeBase functions, or may be used as a quick and easy way to
manipulate databases without coding and compiling. A 'FoxPro
format' DOS Interactive CodeBase executable is currently provided.
The other formats are supported, but must be recompiled or
downloaded from the Sequiter BBS.
Interactive CodeBase for DOS, known as 'CID', contains much of
the CodeBase functionality, as well as interactive browse and edit
facilities.
To install Interactive CodeBase, select 'Interactive CodeBase
for DOS' during the CodeBase INSTALL. Alternatively, you may
manually UNFOLD the 'interactive' files, contained in 'CID.FLD'.
Using CID:
The provided CID executable program can handle only one of the
CodeBase-supported index formats. The file format can be determined
by examining the last three letters of the executables provided:
eg. CID_CDX.EXE is the CDX file format of FoxPro
Also, during CID execution, the file format will be displayed on
the bottom row of CID's main screen. Please ensure that the CID
being used is the proper CID for your file format. If not, recompile
as directed, or contact the Sequiter BBS for the correct CID.
You can run Interactive CodeBase for DOS in either color or
monochrome modes. Pass the command line argument of MONO to select
monochrome mode or enter no arguments for color mode:
Eg. c:\CID_CDX MONO ** for monochrome mode
or c:\CID_CDX ** for color mode
Upon startup, Interactive CodeBase for DOS will display a
startup message. Press any key to clear this message. The main
menu bar will then be activated. You can use the cursor keys to
move the highlighting over the item that you desire and press
[ENTER] to select.
In addition you can use the highlighted hot keys to select a menu
item. Holding down the ALT key and pressing a letter will move to
appropriate menu. For example, pressing [ALT D] will move you to
DATA4 menu. Pressing the letter that is highlighted in an entry of
the current menu, will select that item. For example, pressing
the [O] key while in the INDEX4 menu will select the i4open
function.
After selecting a function from a menu, you will be presented
with a variety of menus, and input boxes, prompting you to enter in
the parameters of the function. Most functions will present you
with a list of the databases that are currently open. You can
press the [ESC] key to abort most operations.
When all of the parameters have been entered, the function will
be executed. If CodeBase encounters any errors, they will be
displayed in popup boxes. After execution of a function, the return
value (if any) will be displayed.
Examples:
To open a database:
-select d4open from the DATA4 menu. A file requester will then
appear.
-enter the directory containing the database you want to open.
-a list of the databases in that directory will appear.
-select the database moving the highlighting with the cursor
keys and press [ENTER]
To set the CODE4.safety to FALSE
-select the CODE4 menu.
-use the cursor keys to move the highlighting over CODE4.safety
-press the [ENTER] key to togle between true and false.
Using the Browser:
InterActive CodeBase for DOS has a built-in Browser. To browse a
database, either open it with d4data, or create it with d4create. Then
select BROWSER from the main menu. You will then be presented with a
list of open databases. Select the database that you want to browse.
NOTE: Memo field browsing and editing is not yet supported.
Browse Mode:
The following keys have special functions when in browse mode:
[UP ARROW] : Selects the previous record
[DOWN ARROW] : Selects the next record
[LEFT ARROW] : Selects the previous field
[RIGHT ARROW] : Selects the next field
[ESC] : Leaves Browse mode and activates the menu
[ENTER] : Allows you to edit the field
[PAGE UP] : Skips back one page of records
[PAGE DOWN] : Skips forward one page of records
[HOME] : Selects the first field
[END] : Selects the last field
[CNTL HOME] : Selects the first record
[CNTL END] : Selects the last record
[INS] : Inserts a new record
[DEL] : Toggles the deletion flag
Menu Items:
BROWSE : Reenters Browse mode
d4tag_select : Select one of the database's tags
d4go : go to the entered record number
d4seek : seek using the currently selected tag
d4top : goto the top of the database
d4bottom : goto the bottom of the database
QUIT BROWSER : quit browser and return the main menu
Compiling the Source Code:
Source code for InterActive CodeBase for DOS has been provided
along with batch files for Borland C++ (CIDBOR.BAT) and for
Microsoft (CIDMSC.BAT). Note the special instructions at the top
of these batch files. Usage of these batch files assumes that
a library, named C5BASE.LIB, has been created first. Also, note
that the CodeBase 5.1 header files must be accessible.
If you are using Microsoft C ,you will also have to rebuild the
CodeBase 5.1 library with the e4error and e4severe functions
commented out. InterActive CodeBase for DOS has replacements for
those routines and the Microsoft C linker will not allow functions
in a library with the same names as those in the source code.
----------------------------------------------------------
VI. Examples
There are four sources of CodeBase 5.1 examples:
1. The manual, for short examples of function (and class)
usage.
2. The examples present on the CodeBase 5.1 diskette.
All examples installed are placed on the CodeBase
\EXAMPLES subdirectory. Examples from the manual
can be found in \EXAMPLES.
3. The testing and diagnostic code. These programs test
the important CodeBase functions, and can also be
used to ensure that CodeBase 5.1 was installed
correctly. Test code, if installed, can be found
in \TEST.
4. Our BBS, which contains new examples produced by our
developers and examples which users have uploaded.
Please see 'Section IX: The CodeBase Public-Access
Bulletin Board System (BBS)' for more information.
----------------------------------------------------------
VII. Using CodeScreens with CodeBase 5.1
Sequiter's 'CodeScreens 1.0' is an add-on package that
contains screen management functions for DOS applications.
If you are interested in obtaining this screen management
library, please contact Sequiter Software for more
information.
You must have at least CodeScreens version 1.02. Owners
of previous versions can contact Sequiter for upgrade
information.
CodeScreens 1.02 functions are used by creating a separate
library, 'W4.LIB', which contains the screen functions.
When using any screen function, remember to include 'W4.H'
at the top of your program. 'W4.H' can be found with
CodeScreens.
There are also provided batch files that can be used to
compile and link a CodeBase 5.1. application using screen
functions. These are named "C4?C.BAT", where '?' is replaced
by a specific letter denoting the compiler used.
----------------------------------------------------------
VIII. CodeBase Public-Access: Sequiter BBS and Compuserve Access
Any user with a modem may connect with the Sequiter
Bulletin Board System. Connection to the BBS is free,
although all users are responsible for their own long-
distance toll charges. The BBS operates twenty-four hours
a day, seven days-a-week, excluding maintenance periods.
The BBS operates under the DOS environment, running
WildCat(c) communications software.
Code updates for CodeBase 5.1 can be accessed from the BBS
through the use of patch files, which may be downloaded freely.
These files are .ZIP files containing instructions and the patch
utility. The patch utility requires an existing copy of
CodeBase 5.1 and works by updating your existing source and header
modules to the latest version. The patch utility can also be
obtained from Compuserve (see below) .
The BBS also contains several CodeBase-related files and
documents that may be downloaded. There is also a message
system so that electronic correspondence may be left for
Sequiter staff, or other BBS users. The files include example
programs, utilities, add-ons and enhancements, written by
both Sequiter developers and CodeBase users. Users are
invited to upload interesting CodeBase-related files for the
use of all BBS users. A list of the latest enhancements, fixes
and additions for all Sequiter products is also maintained on
the Sequiter BBS. Users are encouraged to periodically
download these files, and make the appropriate changes.
The phone number for the BBS is found on the back outside
cover of the CodeBase manual. The phone number is currently
(403)-437-2229.
Settings for the connection are:
1200, 2400 or 9600 baud
ANSI terminal type.
No parity.
8 bits.
1 stop bit.
Upon connection to the Sequiter BBS, a new user will be
prompted for some information and the selection of a private
password. After selection of your password, please memorize
it since you will be asked for that password on future
connections to the BBS.
Sequiter Software is also a registered member of the 'Data Based
Advisor Forum' on CompuServe. Through this forum, messages can
be sent to Sequiter Technical Support. Also, support and
demonstration files can be downloaded from the DBA library area.
To access the DBA forum, type 'GO DBA' at any CompuServe exclamation
(!) prompt.
Messages can be directed to Sequiter using the following CIS ID
number:
71321,1306
This account and the DBA Forum are both monitored for messages
approximately once a day. (Week days only)
The following are detailed instructions as to how our customers
can access Sequiter through the DBA Forum on Compuserv (CIS).
1 - Once user is logged on to CIS, they may get to the DBA Forum
from any "!" prompt by entering the command "GO DBA".
2 - This will bring the user into the DBA top menu, at which time the
user selects menu item " 1 Data Based Advisor Forum ".
3 - The next screen is the Welcome Screen, at which the user
presses the <ENTER>, which then takes the user into the "Forum
Menu".
4 - If menu item " 3 LIBRARIES (Files) " is selected, the next
menu to come up is one which lists all 17 library areas. All
Sequiter files will be located in area " 7 Database OPP, C/C++ ".
5 - After selecting this area, the user can then browse through the
message and file sections, searching by a key word which
identifies our packages (i.e. SEQUITER, CODEBASE, CODEBASIC,
etc.), or if the user knows the name of the file he or she wants
to download, he or she can simply select download.
--------------------------------------------------------------------
IX. Accessing More Than 20 Files in DOS or Windows
Due to a default imposed by most compilers and DOS, no more
than twenty files can be opened during the execution of any
one single process by default. And since the file streams 'stdout',
'stprn', 'stdin', 'stderr' and 'stdaux' count as files, and
your executing application counts as well, this leaves only
fourteen database, index and memo files that are allowed to
be opened by any one application. CodeBase has no inherent
limit to the number of files opened, but will display an error
because of the failure of the system function call 'sopen()'.
Several compilers have patches available for increasing the
file limit. However, because of the nature of these patches,
Sequiter does not provide technical support regarding this issue.
Please consult your compiler's manufacturer for information.
Again, CodeBase has no inherent file limit, but will produce
an error message when it receives an 'error' return from any
C library function that is called.
For further information on your specific compiler please
consult the COMPILER.DOC in the appropriate directory.
--------------------------------------------------------------------
X. CodeBase Multi-Platform C++ Usage
Included with the CodeBase Multi-Platform ANSI diskettes are
eight C++ stub files, which can be used to create a C++ CodeBase
library. The C++ version has been compiled and tested using several
GNU (gcc) compilers. Documentation for the C++ version is provided
in the 'CodeBase++ Users Guide' and the 'CodeBase++ Reference Guide'.
These manuals may be purchased from Sequiter Software. Contact
Sequiter Software at the phone number listed on the back of any
color manual for futher information.
The eight files are already copied automatically when copy_all
is used to install CodeBase. The following command files can be
used to compile a CodeBase C++ library, and building C++ applications:
FILE NAME DESCRIPTION
--------- -----------
compilex This is a command file for compiling the CodeBase C++
library. The compiler is assumed to be the GNU (gcc)
compiler. Use the command file cbbuildx to link the
compiled objects into a library (or see Chapter 6 in
the 'CodeBase Multi-Platform Manual').
cbbuildx This is a command file to build the library libcbx.a
after compilation has been completed. See Chapter 6
in the 'CodeBase Multi-Platform Manual' for details.
diagx A command file used to compile, link and execute the
test programs.
buildapx A sample command file used to compile and link source
modules withe the CodeBase Multi-Platform C++ library.
The compiler is assumed to be the GNU (gcc) compiler.
buildapx takes the prefix of one source module as a
parameter. The suffix is assumed to be '.cxx'.
eg. buildapx d4excpp
------------------- END ---------------------