Index of /cica9308/UNZIPPED/PROGRAMR/VBASIC/VXBASE
Name Last modified Size Description
Parent Directory 06-Dec-2005 04:06 -
VXBDLL.ZIP 30-Oct-1992 05:25 138k
VXBTEST.ZIP 10-Dec-1992 15:53 74k
vxBase 2.04 October 30, 1992
-----------------------------
IMPORTANT NOTE TO EXISTING VXBASE USERS:
----------------------------------------
See the VXLOAD.EXE discussion below.
Prerequisites
-------------
vxBase is a dynamic link library of xBase functions that has been
customized for use with Microsoft Visual Basic. You must have
Visual Basic in order to run the VB sample application.
If you are intending to use vxBase with another language (such as
C), create the directory \VB before beginning installation of vxBase.
The default installation directory is \VB, which is where
Visual Basic is normally set up. The directory that vxBase is
installed into MUST exist. If \VB does not exist, or if you wish
to install vxBase into another directory, ensure that it exists
prior to installation.
vxBase Installation
-------------------
If INSTALL.EXE is resident on this diskette, use the
program manager RUN command A:INSTALL to install
vxBase. If changing the default directory from \VB,
the directory being changed to MUST exist.
ZIP version
-----------
vxBase is distributed on a single diskette or on bulletin boards
as two compressed .ZIP files. The first ZIP file is vxbdoc.zip, which
contains the documentation in a Windows Write file. This file is
essential to understanding and using vxBase. If it is missing, contact
the author at the address below. The documentation is separated from
the rest of vxBase to allow potential users to preview it before
installing and actually using vxBase. This is especially helpful to
potential users who extract vxBase from a bulletin board. They can
evaluate the system from a documentation standpoint before committing to
downloading the larger system.
Unzip vxbdoc.zip and view or print it. The manual is more than
250 pages long. It was formatted for an Epson 24-pin printer using
standard Courier fonts. Printed manuals may be obtained for $20.00.
See the end of the documentation for ordering information.
The second ZIP file (vxbase.zip) contains the sample source code
and Visual Basic project files, vxbase.txt which includes all of the Visual
Basic declarations for the routines in the vxBase DLL, the vxBase DLL
itself, and VXLOAD.EXE - a Visual Basic Design Mode Utility.
If you are going to upload vxBase to a bulletin board, it must be
sent as it was received - in two ZIP files.
When the system ZIP file is decompressed, it contains this readme.doc
file and 2 more ZIP files. These ZIP files are:
vxbdll.zip the vxBase DLL and vxload.exe
vxbtest.zip sample source code and vxbase.txt
To install vxBase, first make a subdirectory under your \vb
directory named \vb\vxbtest and copy the vxbtest.zip file there. Unzip it
and delete the vxbtest.zip file from your hard disk. To run the sample
application it is essential that these files be in directory \vb\vxbtest
because this path is hard-coded into the sample code. If you MUST put it
somewhere else, you'll have to modify the file names in the source code to
reflect your location.
Unzip vxbdll.zip and place the resulting files (VXBASE.DLL and VXLOAD.EXE)
in your \windows directory.
To run the sample program, see the Sample Application section in the
manual. Remember to run vxload.exe before starting Visual Basic.
Better Memory Management in Design Mode with VXLOAD.EXE
-------------------------------------------------------
NOTE: vxload.exe included with vxbase is a utility that simply
loads vxbase.dll and runs in an iconized state. It is
highly recommended that you run this program immediately
PRIOR to calling up Visual Basic in Design Mode. vxload
controls the vxbase memory. Any crashes when testing a vxbase
program in design mode will not affect the vxbase memory pool
at all if vxload is running. Copy vxload.exe to your \windows
directory and set it up as a group item next to your VB icon.
It is also suggested that you add the following two lines of
code to your initialization procedure (somewhere after the call
to vxInit()):
Call vxSetLocks(FALSE)
j% = vxCloseAll()
vxSetLocks is described in the namual.
Adding these two lines to the init procedure will close any
files that were left open as a result of a Design Mode VB
error. vxSetLocks will ensure that any open files left over
from a crashed VB run will not have any leftover locks on
your second and subsequent runs of the program while in Design
Mode - and vxCloseAll will close any leftover files so you can
start off with a clean slate.
If you wish to use the default locking scheme in your finished
.EXE, remove the vxSetLocks(FALSE) that you set up for design mode
testing before compiling (and the vxCloseAll as well although
that is not critical).
If your vxBase program terminates abnormally (or you use the VB End
menu item to terminate), and then you exit Visual Basic, an
attempt to close VXLOAD.EXE from the system menu that appears
when you click on its icon will result in a "Task Sequence Closure
Error". This is because your vxBase Visual Basic program never
called vxDeallocate, which removes Visual Basic from the vxBase
task list being maintained by VXLOAD. If this happens to you,
simply double click the VXLOAD icon to bring the VXLOAD window
into view and select the EXIT menu item. Closing VXLOAD in this
fashion ignores the task list.
vxBase 2.04 October 30, 1992
-----------------------------
(1) formatted vxMemoRead with memo ending in 2 spaces caused
GPF. Problem corrected.
(2) Multitask index select error corrected.
(3) Obscure "DataBase not selected" and "Internal index root
seek errors" corrected.
(4) Win API OpenFile function substituted for MSC _sopen to
stop error when opening more than 15 files
(5) vxLocked/vxIsRecLocked now reports correct lock status
on network files. Previously, only the status as imposed
by the current workstation was reported.
(6) vxUseDbf, vxUseDbfRO, and vxUseNtx now position the
record pointer to the top of the file and fill the
record buffer a la Clipper. Filters are respected.
(7) On multiuser Retry? message boxes, caption now set to
vxSetErrorCaption string instead of "vxbase" if present.
(8) Search algorithm in vxBrowse changed. If a table has been
defined with the vxTablexxx functions, the search is limited
to browse displayable data only. The search also will not
cross field boundaries as it does in the raw data display (where
the entire record is searched - unchanged from previous releases).
(9) VX_FLAT style added to vxCtlStyle. Define Global Const VXFLAT = 3
in global module before using as an attribute with vxCtlStyle.
VX_FLAT flattens VX_RECESS and VX_RAISE control styles. This attribute
may be used effectively to indicate the readiness of a text box to
accept data. If the text box is drawn on the form with no borders
and colored light gray, it is invisible on the form. You can use
vxCtlStyle with VX_RECESS, VX_RAISE, and VX_FLAT to dynamically
change the control's appearance.
(10) Italian support added to vxSetLanguage (VX_ITALIAN).
(11) The type of an index expression is now tested when the index is
opened with vxUseNtx. If the expression evaluates as numeric or
as a date, the open is denied. YOU MUST USE CHARACTER INDEX
EXPRESSIONS IN VXBASE. Use The STR() function to convert
numbers to strings and the DTOS() function to convert dates
to strings within your index expressions.
(12) date insertion in memo editor via F5 key now conforms to
international standards set with vxSetDate.
(13) potential sharing violation when opening a read only file
with vxUseDbfRO (or subsequent vxUseNtx calls) corrected.
(14) made vxErrorMsg and vxChrToInt functions exportable for
C users.
(15) Field functions changed to speed up alias testing.
(16) Error 912 incorrectly defined in manual as "Index key
does not exist" when it should have been "Index key
already exists". Occurs when attempting to add a key
whose key expression and record number already exist
in the index.
(17) vxAreaDbf now reports system wide area as reported in the
documentation.
(18) potential close error with vxCloseAll() corrected.
(19) sporadic no index key addition with big files corrected.
(20) vxZap now clears associated dbt file as well.
(21) VGA determination algorithm changed to allow 3d support
on ps/2 monitors.
(22) alias names defined with vxSetAlias now allowed in xBase
expressions with the classic alias delimiter "->"
(e.g., "master->namefld"). The delimiter for alias name use
in vxBase function calls remains the same (i.e., "master.namefld").
(23) vxCopy now respects filters. It may be used to create file
subsets.
(24) vxCtlFormat passes Enter and Escape keys to VB default procedure.
(25) Logical vxNtxRecNo is now synchronized with a physical vxGo.
Changes to Release 2.00
-----------------------
File open error when using vxSetupPrinter corrected.
vxFilterReset memory deallocation corrected to stop memory leak.
vxBrowse creeping window corrected when using default positioning
and a parent window with no menu.
Incorrect open area reported if vxUseNtx is called on an already
open index. Corrected.
Locked index after vxTop corrected.
Functions Added to Release 1.07
-------------------------------
(1) vxBrowseSetup allows the user to fine tune the appearance of a
Browse table (both the old window browse and the new vxCtlBrowse).
(2) vxCtlBrowse allows the placement of a browse table in a form multiline
text box. Communication with the browse table is enabled with the new
vxCtlBrowseMsg function. The Browse table no longer has to be
terminated when a selection is made, etc. It also allows dynamic
memo linking. All standard events and procedures attached to the
text box may be used in normal fashion while the browse is
running.
(3) vxCtlBrowseMsg communicates with a vxCtlBrowse. Messages the programmer
can pass are both interrogatory and procedural (e.g., VXB_GETCURRENTREC
extracts the record number of the currently highlighted record and
VXB_REFRESH redraws the browse starting at a different record number).
(4) vxCtlFormat adds TEXT FORMATTING to vxBase. Add declaration
and global constants as defined below.
(5) vxCtlHwnd gets the window handle associated with a Visual Basic control.
(6) vxCtlPenWidth added to control the depth of Recessing and Raising
a control when using vxCtlStyle. Add declaration as defined below.
(7) vxDbfCurrent reports the current database select area. Add
declaration as defined below.
(8) vxErrorTest added to test the result of a vxBase function that uses
the alternate error method set by vxSetErrorMethod. Add VxErrorStruc
type and vxErrorTest function declaration as defined below.
(9) vxGetVersion returns a string containing the current
vxBase version number. Add declaration as defined below.
(10) vxFieldTrim returns a string representing the defined field with
trailing spaces removed. Add declaration as defined below.
(11) vxLocate searches for a record from and including the current
record position that satisfies a logical xBase expression.
The search direction may be specified. Add declaration and
constants as defined below.
(12) vxLocateAgain searches for a record from and NOT including
the current record position that satisfies a logical xBase
expression as defined by the last vxLocate for the selected
database. The search direction may be specified. Add declaration
and constants as defined below.
(13) vxNtxCurrent reports the current index select area. Add declaration
as defined below.
(14) vxNtxRecNo returns the ordinal position of the key in the
current index. Add declaration as defined below.
(15) vxPrinterDefault returns a string describing the Windows default
printer in a format suitable for use by vxPrinterSelect
(16) vxPrinterEnum enumerates all printers on the system and
returns a string suitable for setting the default printer
with vxPrinterSelect. Add declaration as defined below.
(17) vxPrinterSelect changes the default Windows printer. The
printer setup string must be in the same format as that
returned by vxPrinterEnum. Add declaration as defined below.
(18) vxReplDateString replaces a field with a date string
formatted as per vxSetDate (default "mm/dd/yy"). This goes hand
in glove with dates input into text boxes via vxCtlFormat
or displayed with vxDateString. Add declaration as defined below.
(19) vxReplRecord replaces the entire record buffer with the data
pointed to by a record typedef or string (see vxRecord). BE
CAREFUL with this function. No data checks are implemented!
Add declaration as defined below.
(20) vxSeekFast speeds up seek times on Read Only files by 35%.
Add declaration as defined below.
(21) vxSetAlias allows field qualification in all vxBase field
functions. Add declaration as defined below.
(22) vxSetErrorMethod allows an alternate method of trapping errors
found by vxBase. The normal method is to report the error through
a message box at run time. If you use the alternate method,
nothing is reported (for most functions); instead, an error
structure is filled with information about the error which
may be extracted with the vxErrorTest function. Add declaration
as defined below.
(23) vxSetMeters allows you to turn the analog meter bars displayed
by vxPack, vxReindex, and vxTestNtx on or off (default is ON).
Add declaration as defined below.
(24) vxSetRelation adds true relational capability to vxBase.
Add declaration as defined below.
(25) vxTableFieldExt added to provide column definitions
to vxBrowse when using vxSetRelation to add multi-file
fields on the same browse row. Add declaration as defined below.
International Functions Added
-----------------------------
The following functions all deal with the problem of a database
that contains characters from the high end of the ANSI or OEM
character sets, which is commonplace if the database stores data in
a language other than English.
(1) vxSetAnsi(FALSE) properly handles databases that were created
with a DOS based application (such as Clipper). These databases
are OEM databases. Characters with diacritical marks in the
high end of the OEM character collating sequence are NOT the
same as the ANSI characters. It is necessary for vxBase to
translate the characters to ANSI (both Windows and vxBase
native mode) before they can be used in a vxBase application.
They also must be translated back again when they are written.
The default value of vxSetAnsi is TRUE (no translation takes
place). If the database was created and is maintained by vxBase
(or DataWorks), and the database is going to be used exclusively
by Windows applications, vxSetAnsi should be TRUE.
(2) vxCollate allows the programmer to create his own collating
sequence table (for EITHER an ANSI database or an OEM database).
The OEM character set in particular does not use any kind of
logical collating sequence for characters with diacritical marks.
The ANSI table handles these characters more intelligently - but
its sequence is also incorrect for some languages.
It is necessary to define a collating sequence table to properly
build an index that uses these characters.
(3) vxSetCollate can toggle a defined collating table on or off.
If you have received an upgrade to an existing vxBase system,
you may only wish to print only those pages of the manual that
contain the documentation for the new functions listed above.
Terry Orletsky
vxBase (512523 Alberta Ltd)
#200, 10310 - 176 Street
Edmonton, Alberta, Canada
T5S 1L3
Phone (403) 489-5994
Fax (403) 486-4335
BBS (403) 483-5687 2400 BAUD 8N1
Compuserve I.D. 70524,3723