home *** CD-ROM | disk | FTP | other *** search
/ CICA 1993 August / CICA.cdr / unzipped / programr / vbasic / vxbase / readme.txt next >
Encoding:
Text File  |  1992-10-30  |  16.5 KB  |  372 lines

  1. vxBase 2.04  October 30, 1992
  2. -----------------------------
  3.  
  4. IMPORTANT NOTE TO EXISTING VXBASE USERS:
  5. ----------------------------------------
  6.    See the VXLOAD.EXE discussion below.
  7.  
  8. Prerequisites
  9. -------------
  10.    vxBase is a dynamic link library of xBase functions that has been
  11. customized for use with Microsoft Visual Basic. You must have 
  12. Visual Basic in order to run the VB sample application. 
  13.    If you are intending to use vxBase with another language (such as 
  14. C), create the directory \VB before beginning installation of vxBase.
  15.    The default installation directory is \VB, which is where
  16. Visual Basic is normally set up. The directory that vxBase is
  17. installed into MUST exist. If \VB does not exist, or if you wish
  18. to install vxBase into another directory, ensure that it exists
  19. prior to installation.
  20.  
  21. vxBase Installation
  22. -------------------
  23.    If INSTALL.EXE is resident on this diskette, use the
  24.    program manager RUN command A:INSTALL to install
  25.    vxBase. If changing the default directory from \VB,
  26.    the directory being changed to MUST exist.
  27.  
  28.  
  29. ZIP version
  30. -----------
  31.     vxBase is distributed on a single diskette or on bulletin boards
  32. as two compressed .ZIP files. The first ZIP file is vxbdoc.zip, which
  33. contains the documentation in a Windows Write file. This file is
  34. essential to understanding and using vxBase. If it is missing, contact
  35. the author at the address below.  The documentation is separated from
  36. the rest of vxBase to allow potential users to preview it before
  37. installing and actually using vxBase. This is especially helpful to
  38. potential users who extract vxBase from a bulletin board. They can
  39. evaluate the system from a documentation standpoint before committing to
  40. downloading the larger system.
  41.  
  42.     Unzip vxbdoc.zip and view or print it. The manual is more than
  43. 250 pages long. It was formatted for an Epson 24-pin printer using
  44. standard Courier fonts. Printed manuals may be obtained for $20.00.
  45. See the end of the documentation for ordering information.
  46.  
  47.     The second ZIP file (vxbase.zip) contains the sample source code
  48. and Visual Basic project files, vxbase.txt which includes all of the Visual
  49. Basic declarations for the routines in the vxBase DLL, the vxBase DLL
  50. itself, and VXLOAD.EXE - a Visual Basic Design Mode Utility.
  51.  
  52.     If you are going to upload vxBase to a bulletin board, it must be
  53. sent as it was received - in two ZIP files.
  54.  
  55.     When the system ZIP file is decompressed, it contains this readme.doc
  56. file and 2 more ZIP files. These ZIP files are:
  57.  
  58.     vxbdll.zip    the vxBase DLL and vxload.exe
  59.     vxbtest.zip    sample source code and vxbase.txt
  60.  
  61.     To install vxBase, first make a subdirectory under your \vb
  62. directory named \vb\vxbtest and copy the vxbtest.zip file there. Unzip it
  63. and delete the vxbtest.zip file from your hard disk. To run the sample
  64. application it is essential that these files be in directory \vb\vxbtest
  65. because this path is hard-coded into the sample code. If you MUST put it
  66. somewhere else, you'll have to modify the file names in the source code to
  67. reflect your location.
  68.  
  69.     Unzip vxbdll.zip and place the resulting files (VXBASE.DLL and VXLOAD.EXE)
  70. in your \windows directory.
  71.  
  72.     To run the sample program, see the Sample Application section in the
  73. manual. Remember to run vxload.exe before starting Visual Basic. 
  74.  
  75.  
  76. Better Memory Management in Design Mode with VXLOAD.EXE
  77. -------------------------------------------------------
  78. NOTE: vxload.exe included with vxbase is a utility that simply
  79.       loads vxbase.dll and runs in an iconized state. It is
  80.       highly recommended that you run this program immediately 
  81.       PRIOR to calling up Visual Basic in Design Mode. vxload
  82.       controls the vxbase memory. Any crashes when testing a vxbase
  83.       program in design mode will not affect the vxbase memory pool
  84.       at all if vxload is running. Copy vxload.exe to your \windows
  85.       directory and set it up as a group item next to your VB icon. 
  86.  
  87.       It is also suggested that you add the following two lines of
  88.       code to your initialization procedure (somewhere after the call
  89.       to vxInit()):
  90.  
  91.       Call vxSetLocks(FALSE)
  92.       j% = vxCloseAll()
  93.  
  94.       vxSetLocks is described in the namual.
  95.  
  96.       Adding these two lines to the init procedure will close any
  97.       files that were left open as a result of a Design Mode VB
  98.       error. vxSetLocks will ensure that any open files left over
  99.       from a crashed VB run will not have any leftover locks on
  100.       your second and subsequent runs of the program while in Design
  101.       Mode - and vxCloseAll will close any leftover files so you can
  102.       start off with a clean slate.
  103.  
  104.       If you wish to use the default locking scheme in your finished
  105.       .EXE, remove the vxSetLocks(FALSE) that you set up for design mode
  106.       testing before compiling (and the vxCloseAll as well although
  107.       that is not critical).
  108.  
  109.       If your vxBase program terminates abnormally (or you use the VB End
  110.       menu item to terminate), and then you exit Visual Basic, an 
  111.       attempt to close VXLOAD.EXE from the system menu that appears
  112.       when you click on its icon will result in a "Task Sequence Closure
  113.       Error". This is because your vxBase Visual Basic program never
  114.       called vxDeallocate, which removes Visual Basic from the vxBase 
  115.       task list being maintained by VXLOAD. If this happens to you,
  116.       simply double click the VXLOAD icon to bring the VXLOAD window
  117.       into view and select the EXIT menu item. Closing VXLOAD in this
  118.       fashion ignores the task list.
  119.  
  120. vxBase 2.04  October 30, 1992
  121. -----------------------------
  122.   (1) formatted vxMemoRead with memo ending in 2 spaces caused
  123.       GPF. Problem corrected.
  124.  
  125.   (2) Multitask index select error corrected.
  126.  
  127.   (3) Obscure "DataBase not selected" and "Internal index root
  128.       seek errors" corrected.
  129.  
  130.   (4) Win API OpenFile function substituted for MSC _sopen to
  131.       stop error when opening more than 15 files
  132.  
  133.   (5) vxLocked/vxIsRecLocked now reports correct lock status
  134.       on network files. Previously, only the status as imposed
  135.       by the current workstation was reported.
  136.  
  137.   (6) vxUseDbf, vxUseDbfRO, and vxUseNtx now position the
  138.       record pointer to the top of the file and fill the
  139.       record buffer a la Clipper. Filters are respected.
  140.  
  141.   (7) On multiuser Retry? message boxes, caption now set to 
  142.       vxSetErrorCaption string instead of "vxbase" if present.
  143.  
  144.   (8) Search algorithm in vxBrowse changed. If a table has been
  145.       defined with the vxTablexxx functions, the search is limited
  146.       to browse displayable data only. The search also will not
  147.       cross field boundaries as it does in the raw data display (where
  148.       the entire record is searched - unchanged from previous releases).
  149.  
  150.   (9) VX_FLAT style added to vxCtlStyle. Define Global Const VXFLAT = 3
  151.       in global module before using as an attribute with vxCtlStyle.
  152.       VX_FLAT flattens VX_RECESS and VX_RAISE control styles. This attribute
  153.       may be used effectively to indicate the readiness of a text box to
  154.       accept data. If the text box is drawn on the form with no borders
  155.       and colored light gray, it is invisible on the form. You can use
  156.       vxCtlStyle with VX_RECESS, VX_RAISE, and VX_FLAT to dynamically
  157.       change the control's appearance.
  158.  
  159.  (10) Italian support added to vxSetLanguage (VX_ITALIAN).      
  160.  
  161.  (11) The type of an index expression is now tested when the index is
  162.       opened with vxUseNtx. If the expression evaluates as numeric or 
  163.       as a date, the open is denied. YOU MUST USE CHARACTER INDEX
  164.       EXPRESSIONS IN VXBASE. Use The STR() function to convert
  165.       numbers to strings and the DTOS() function to convert dates
  166.       to strings within your index expressions.     
  167.  
  168.  (12) date insertion in memo editor via F5 key now conforms to
  169.       international standards set with vxSetDate.
  170.  
  171.  (13) potential sharing violation when opening a read only file
  172.       with vxUseDbfRO (or subsequent vxUseNtx calls) corrected.
  173.  
  174.  (14) made vxErrorMsg and vxChrToInt functions exportable for
  175.       C users.
  176.  
  177.  (15) Field functions changed to speed up alias testing. 
  178.  
  179.  (16) Error 912 incorrectly defined in manual as "Index key
  180.       does not exist" when it should have been "Index key
  181.       already exists". Occurs when attempting to add a key
  182.       whose key expression and record number already exist
  183.       in the index. 
  184.  
  185.  (17) vxAreaDbf now reports system wide area as reported in the
  186.       documentation. 
  187.  
  188.  (18) potential close error with vxCloseAll() corrected.
  189.  
  190.  (19) sporadic no index key addition with big files corrected.
  191.  
  192.  (20) vxZap now clears associated dbt file as well.
  193.  
  194.  (21) VGA determination algorithm changed to allow 3d support
  195.       on ps/2 monitors.
  196.  
  197.  (22) alias names defined with vxSetAlias now allowed in xBase
  198.       expressions with the classic alias delimiter "->"
  199.       (e.g., "master->namefld"). The delimiter for alias name use
  200.       in vxBase function calls remains the same (i.e., "master.namefld").
  201.  
  202.  (23) vxCopy now respects filters. It may be used to create file
  203.       subsets.
  204.  
  205.  (24) vxCtlFormat passes Enter and Escape keys to VB default procedure.
  206.  
  207.  (25) Logical vxNtxRecNo is now synchronized with a physical vxGo.
  208.  
  209. Changes to Release 2.00
  210. -----------------------
  211.    File open error when using vxSetupPrinter corrected.
  212.    vxFilterReset memory deallocation corrected to stop memory leak.
  213.    vxBrowse creeping window corrected when using default positioning
  214. and a parent window with no menu.
  215.    Incorrect open area reported if vxUseNtx is called on an already
  216. open index. Corrected.
  217.    Locked index after vxTop corrected.
  218.  
  219.  
  220. Functions Added to Release 1.07
  221. -------------------------------
  222.   (1) vxBrowseSetup allows the user to fine tune the appearance of a
  223.       Browse table (both the old window browse and the new vxCtlBrowse).
  224.  
  225.   (2) vxCtlBrowse allows the placement of a browse table in a form multiline
  226.       text box. Communication with the browse table is enabled with the new
  227.       vxCtlBrowseMsg function. The Browse table no longer has to be 
  228.       terminated when a selection is made, etc. It also allows dynamic
  229.       memo linking. All standard events and procedures attached to the
  230.       text box may be used in normal fashion while the browse is
  231.       running.
  232.  
  233.   (3) vxCtlBrowseMsg communicates with a vxCtlBrowse. Messages the programmer
  234.       can pass are both interrogatory and procedural (e.g., VXB_GETCURRENTREC 
  235.       extracts the record number of the currently highlighted record and
  236.       VXB_REFRESH redraws the browse starting at a different record number).
  237.  
  238.   (4) vxCtlFormat adds TEXT FORMATTING to vxBase. Add declaration
  239.       and global constants as defined below.
  240.  
  241.   (5) vxCtlHwnd gets the window handle associated with a Visual Basic control.
  242.  
  243.   (6) vxCtlPenWidth added to control the depth of Recessing and Raising
  244.       a control when using vxCtlStyle. Add declaration as defined below.
  245.  
  246.   (7) vxDbfCurrent reports the current database select area. Add
  247.       declaration as defined below.
  248.  
  249.   (8) vxErrorTest added to test the result of a vxBase function that uses
  250.       the alternate error method set by vxSetErrorMethod. Add VxErrorStruc
  251.       type and vxErrorTest function declaration as defined below.
  252.  
  253.   (9) vxGetVersion returns a string containing the current
  254.       vxBase version number. Add declaration as defined below.
  255.  
  256.  (10) vxFieldTrim returns a string representing the defined field with
  257.       trailing spaces removed. Add declaration as defined below.
  258.  
  259.  (11) vxLocate searches for a record from and including the current
  260.       record position that satisfies a logical xBase expression.
  261.       The search direction may be specified. Add declaration and
  262.       constants as defined below.
  263.  
  264.  (12) vxLocateAgain searches for a record from and NOT including
  265.       the current record position that satisfies a logical xBase
  266.       expression as defined by the last vxLocate for the selected
  267.       database. The search direction may be specified. Add declaration
  268.       and constants as defined below.
  269.  
  270.  (13) vxNtxCurrent reports the current index select area. Add declaration
  271.       as defined below.
  272.  
  273.  (14) vxNtxRecNo returns the ordinal position of the key in the
  274.       current index. Add declaration as defined below.
  275.  
  276.  (15) vxPrinterDefault returns a string describing the Windows default
  277.       printer in a format suitable for use by vxPrinterSelect
  278.  
  279.  (16) vxPrinterEnum enumerates all printers on the system and
  280.       returns a string suitable for setting the default printer
  281.       with vxPrinterSelect. Add declaration as defined below.
  282.  
  283.  (17) vxPrinterSelect changes the default Windows printer. The
  284.       printer setup string must be in the same format as that
  285.       returned by vxPrinterEnum. Add declaration as defined below.
  286.  
  287.  (18) vxReplDateString replaces a field with a date string
  288.       formatted as per vxSetDate (default "mm/dd/yy"). This goes hand
  289.       in glove with dates input into text boxes via vxCtlFormat
  290.       or displayed with vxDateString. Add declaration as defined below.
  291.  
  292.  (19) vxReplRecord replaces the entire record buffer with the data
  293.       pointed to by a record typedef or string (see vxRecord). BE
  294.       CAREFUL with this function. No data checks are implemented!
  295.       Add declaration as defined below.
  296.  
  297.  (20) vxSeekFast speeds up seek times on Read Only files by 35%.
  298.       Add declaration as defined below.
  299.  
  300.  (21) vxSetAlias allows field qualification in all vxBase field
  301.       functions. Add declaration as defined below.
  302.  
  303.  (22) vxSetErrorMethod allows an alternate method of trapping errors
  304.       found by vxBase. The normal method is to report the error through
  305.       a message box at run time. If you use the alternate method,
  306.       nothing is reported (for most functions); instead, an error
  307.       structure is filled with information about the error which
  308.       may be extracted with the vxErrorTest function. Add declaration
  309.       as defined below.
  310.  
  311.  (23) vxSetMeters allows you to turn the analog meter bars displayed
  312.       by vxPack, vxReindex, and vxTestNtx on or off (default is ON).
  313.       Add declaration as defined below.
  314.  
  315.  (24) vxSetRelation adds true relational capability to vxBase.
  316.       Add declaration as defined below.
  317.  
  318.  (25) vxTableFieldExt added to provide column definitions
  319.       to vxBrowse when using vxSetRelation to add multi-file
  320.       fields on the same browse row. Add declaration as defined below.
  321.  
  322.  
  323. International Functions Added
  324. ----------------------------- 
  325.    The following functions all deal with the problem of a database
  326. that contains characters from the high end of the ANSI or OEM 
  327. character sets, which is commonplace if the database stores data in
  328. a language other than English.
  329.  
  330.    (1) vxSetAnsi(FALSE) properly handles databases that were created
  331.        with a DOS based application (such as Clipper). These databases
  332.        are OEM databases. Characters with diacritical marks in the
  333.        high end of the OEM character collating sequence are NOT the
  334.        same as the ANSI characters. It is necessary for vxBase to
  335.        translate the characters to ANSI (both Windows and vxBase
  336.        native mode) before they can be used in a vxBase application.
  337.        They also must be translated back again when they are written.
  338.  
  339.        The default value of vxSetAnsi is TRUE (no translation takes
  340.        place). If the database was created and is maintained by vxBase
  341.        (or DataWorks), and the database is going to be used exclusively
  342.        by Windows applications, vxSetAnsi should be TRUE.
  343.  
  344.    (2) vxCollate allows the programmer to create his own collating
  345.        sequence table (for EITHER an ANSI database or an OEM database).
  346.        The OEM character set in particular does not use any kind of
  347.        logical collating sequence for characters with diacritical marks.
  348.        The ANSI table handles these characters more intelligently - but
  349.        its sequence is also incorrect for some languages.
  350.  
  351.        It is necessary to define a collating sequence table to properly
  352.        build an index that uses these characters.
  353.  
  354.    (3) vxSetCollate can toggle a defined collating table on or off.
  355.  
  356.  
  357. If you have received an upgrade to an existing vxBase system, 
  358. you may only wish to print only those pages of the manual that
  359. contain the documentation for the new functions listed above.
  360.  
  361.  
  362. Terry Orletsky
  363. vxBase (512523 Alberta Ltd)
  364. #200, 10310 - 176 Street
  365. Edmonton, Alberta, Canada
  366. T5S 1L3
  367. Phone (403) 489-5994
  368. Fax   (403) 486-4335
  369. BBS   (403) 483-5687 2400 BAUD 8N1
  370. Compuserve I.D. 70524,3723
  371. 
  372.