Read me first (shareware)
DB v1.10  16-June-1993

--General
** This software was first posted on CompuServe in March of 1993 as 
DBLIB.ZIP.  It is now called dbBasic.zip to help clear up confusion
with another library package that is available.
DB is a set of BASIC tools that will give a programmer access to Xbase 
compliant files.  As you know the Xbase standard is becoming a widely used
format (dBase is a prime example) for data base files.  Having a set of 
routines to allow access to these files through the BASIC programming 
language allows you as a programmer to dramatically extend the range of
services you can provide an end user.  You are able to provide highly
customized screens and reports that may have been cumbersome, if not
impossible, in other ways.  You can also do data manipulation within the files
that could not have been done otherwise.

I want to stress that this release of DB is a developmental version.  The 
full list of functions under development is listed in below.  They will be
made available in the suceeding versions.

I encourage all of you who use these tools to let me know what needs to be
changed, improved, deleted, or what.  The most reliable way to reach me
is to drop me a postcard at the address below, or send me a message on
CompuServe.  My ID is 70742,77.

--Documentation
See the sample programs DBDEMO??.BAS.  The header file DBHDR.BI also shows
how to use the routines.  NOTE: This package is source-specific to MS 
QuickBASIC 4.5 and BASIC 7.1 in that much of the source examples deal with
using DB with these products.  Future versions will support other BASIC
compilers.  I am in the process of creating Visual BASIC versions right now.


--Installation
There is no specific installation procedure....just copy the library files to
a directiory where you want to keep them and link them to your programs.

--Registration
If you feel so inclined you may send a $10.00 contribution to the address
below.  Contributors will be put on my mailing list to receive future upgrades
as they become available.

                Keith Oliver
                3744 Tara Dr.
                Destrehan, LA  70047-9029  U.S.A.



--Distribution
BBS Sysops may carry DB on their BBS provided that all files listed in
the PACKLST.TXT file are included in the archive. This file must be provided
free of charge, i.e., this file cannot placed in an area that requires users
to pay a fee for per-file download. A general subscription fee BBS is exempt
from this limitation, provided that no specific charge is assessed to this
particular file.


--Packing list
The following list of functions are expected to be available in the final
product. (There may be more after all is said and done).  An '*' indicates
that the routine is included in this release.

       dbAddMem - add a new memo record
     * dbAddRec - append a blank record
     * dbBottom - move to the end of a DBF file
     * dbCpyFil - copy an entire DBF file
       dbCpyRec - copy a record from another DBF
     * dbCpyStr - copy the structure of a DBF file
       dbCreDbf - create a DBF file
       dbCreMem - create a memo file
       dbCreNdx - create an index
     * dbDeletd - number of deleted records in DBF
       dbDelMem - delete a memo record
     * dbDelRng - delete a range of records
     * dbDelRec - delete a DBF record
     * dbGetDbfHdr - get the header record for a DBF file
     * dbGetMemHdr - get the header record for a memo file
     * dbGetNdxHdr - get the header record for an index
     * dbGetDsc - get the field descriptors for a DBF file
     * dbGetRec - get a whole DBF record
     * dbGetField - get a DBF record field
       dbLckDbf - lock a DBF file (in network environments)
       dbLocked - determines if a DBF file is locked
       dbLckRec - lock a single DBF record (in network environments)
     * dbMemLen - length of memo record
       dbMemPck - pack a memo file
     * dbOpnDbf - open a DBF file
     * dbOpnDbt - open a DBT (memo) file
     * dbOpnNdx - open a NDX (index) file
     * dbPck    - pack a DBF file
     * dbPutField - write a DBF record field
     * dbPutRec - write a DBF record to the file
       dbReindex - rebuild a DBF index
     * dbTop    - go to the top of the DBF file
       dbUnlFil - unlock DBF file
       dbUnlRec - unlock DBF record
       dbWrtMem - write a memo record
     * dbZap    - delete all records in a DBF file
       
       utEdtTxt - edit a memo text field 
     * utWrpPrn - print text to a window box with wrap between words
     * utBox - draw a text box on screen
     * utScroll - scroll a text box
                                                


Function calling parameters:

     dbGetDsc (dbChn, InFld AS FldDsc, Fld1() AS FldDsc, nFlds)
               dbChn = I/O channel of open DBF file
               InFld =  DBF descriptor record type
               Fld1() = array of descriptor records to return
               nFlds = number of fields in the DBF record


     dbGetDbfHdr (dbChn, Hdr1 AS dbHdr1)
               dbChn = I/O channel of open DBF file
               Hdr1 = DBF header record type


     dbGetMemHdr (dmChn, Hdr1 AS dbMemHdr1)
               dmChn = I/O channel of open memo file
               Hdr1 = Memo header record type


     dbGetNdxHdr (dnChn, Hdr1 AS dbNdxHdr1)
               dnChn = I/O channel of open index file
               Hdr1 = Index header record type


     dbOpnDbf (dbNme$)
     dbOpnMem (dbNme$)
     dbOpnNdx (dbNdx$)
               Supply the fill name, including extension, of the
               particular file to open.


     dbGetRec$ (dbChn, dbRec, Hdr1 AS dbHdr1)
               dbChn = I/O channel of open dbf file
               dbRec = record number to get
               Hdr1 = DBF header record for the file


     dbGetField$ (dbRec$, DscRec AS FldDsc, FldNo)
               dbRec$ = DBF record, as returned from dbGetRec$
               DscRec = descriptor array for this file
               Fldno = field number to get


     dbPutField$ (dbRec$, DscRec AS FldDsc, FldNo, FldDat$)
               dbRec$ = DBF record, as returned from dbGetRec$
               DscRec = descriptor array for this file
               Fldno = field number to get
               FldDat$ = data to put inot field

     dbPutRec (dbChn, dbRec, Hdr1 AS dbHdr1, dbRec$)
               dbChn = I/O channel of open dbf file
               dbRec = record number to put
               Hdr1 = DBF header record for the file
               dbRec$ = data record to write


     dbAddRec (dbChn, Hdr1 AS dbHdr1)
              dbChn = I/O channel of open DBF file
              Hdr1 = DBF header record for this file


     dbDelRec (dbChn, dbRec, Hdr1 AS dbHdr1, DelSw)
              dbChn = I/O channel of open DBF file
              dbRec = record number to delete
              Hdr1 = DBF header record for this file
              DelSw = delete switch: 1 if delete, 0 if undelete


     dbGetMem$ (dmChn, dbPtr&)
              dmChn = I/O channel of open memo file
              dbPtr& = pointer, from DBF file, to memo record


              
     dbBottom (dbChn, Hdr1 AS dbHdr1)
              dbChn = I/O channel of open DBF file
              Hdr1 = Header record for this DBF file


     dbTop (dbChn, Hdr1 AS dbHdr1)
              dbChn = I/O channel of open DBF file
              Hdr1 = Header record for this DBF file

 
     dbZap (dbChn, Hdr1 AS dbHdr1, dbNme$)
              dbChn = I/O channel of open DBF file
              Hdr1 = Header record for this DBF file
              dbNme$ = full name, including extension, of this DBF file


     dbCpyFil (dbChn%, Hdr1 AS dbHdr1, dbNme$)
              dbChn = I/O channel of open DBF file
              Hdr1 = Header record for this DBF file
              dbNme$ = full name, including extension, of this DBF file


     dbCpyStr (dbChn%, Hdr1 AS dbHdr1, dbNme$)
              dbChn = I/O channel of open DBF file
              Hdr1 = Header record for this DBF file
              dbNme$ = full name, including extension, of the new DBF file


     dbDeletd (dbChn%, Hdr1 AS dbHdr1)
              dbChn = I/O channel of open DBF file
              Hdr1 = Header record for this DBF file


     dbMemLen (dbMemPtr$, dmChn%)
              dbMemPtr$ = memo field pointer from DBF file
              dmChbn = I/O channel of open memo file


     dbPck (dbChn%, Hdr1 AS dbHdr1, dbNme$)
              dbChn = I/O channel of open DBF file
              Hdr1 = Header record for this DBF file
              dbNme$ = full name, including extension, of this DBF file


Subroutine calling parameters:

    utStrChr (InStr$)
             InStr$ = text string to process (strips LF's and soft CR/LF
                      characters from memo fields)

    utWrpPrn (text$, row1, col1, row2, col2)
             text$ = text to print
             row1 = begining row of text window
             col1 = begining column of text window
             row2 = ending row of text window
             col2 = ending column of text window

    utBox (row1, col1, row2, col2, fore, back, border, fillFlag)
             row1 = begining row of text window
             col1 = begining column of text window
             row2 = ending row of text window
             col2 = ending column of text window
             fore, back = foreground and background colors
             border = number for border from the following list:
                  1 = "           ST"
                  2 = "=           ST"
                  3 = "=          ST"
                  4 = "        +   ST"
                  5 = "       +   ST"
                  6 = "=       +   ST"
                  7 = "=      +   ST"
                  8 = "Ŀ ĴST"
                  9 = "ڰ ĴST"
                 10 = "=Ŀ ĴST"
                 11 = "= ĴST"
                 12 = "Ŀ +ĴST"
                 13 = "ڰ +ĴST"
                 14 = "=Ŀ +ĴST"
                 15 = "= +ĴST"
                 16 = "ͻ ͼ͹ST"
                 17 = "ɰ ͼ͹ST"
                 18 = "=ͻ ͼ͹ST"
                 19 = "= ͼ͹ST"
                 20 = "ͻ +͹ST"
                 21 = "ɰ +͹ST"
                 22 = "=ͻ +͹ST"
                 23 = "= +͹ST"
             fillFlag = 0 = nofill, 1=fill

    utScroll (row1, col1, row2, col2, Lines, attr)
             row1 = begining row of text window
             col1 = begining column of text window
             row2 = ending row of text window
             col2 = ending column of text window
             Lines = # of lines to scroll
             attr = color for newly created blank lines


