home *** CD-ROM | disk | FTP | other *** search
- 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
-