Looking for work? Check out our jobs area.

View \GS_HELP.ASC

Halcyon version 3.0

Submitted By: Unknown
Rating: (Not rated) (Rate It)


BASIC DOCUMENTATION



                                  ?????????????
                                  ?  HALCYON  ?
                                  ?????????????

                                   Version 3.0



                                GRIFFIN SOLUTIONS


                         dBase III, IV Access Routines
                               Using Turbo Pascal







                                12 August 1993

             (C) Copyright 1991,1992, 1993 - All Rights reserved









                             Griffin Solutions
                          102 Molded Stone Place
                       Warner Robins, Georgia 31088
                          Voice: (912) 953-2680
                          Fax:   (912) 953-5517
                          CompuServe: 75206.231
                    The Consultant BBS: (718) 837 3236
 

                                     ------
                                     NOTICE
                                     ------



HALCYON IS COPYRIGHTED, ALL RIGHTS RESERVED.  AS SHAREWARE, HALCYON MAY BE
COPIED AND SHARED WITH OTHERS.  HOWEVER, TO PROTECT THE QUALITY OF THE
DISTRIBUTION OF THIS PROGRAM AND TO SUPPORT FUTURE DEVELOPMENT CERTAIN
LIMITATIONS APPLY.  COPIES OF HALCYON MAY BE MADE FOR TRIAL USE BY OTHERS ON
A PRIVATE NON-COMMERCIAL BASIS ONLY.  HALCYON MAY NOT BE RE-SOLD UNDER ANY
CONDITIONS.  AS A REGISTERED USER, YOU MAY DISTRIBUTE COMPILED HALCYON
ROUTINES IN CONNECTION WITH ANY OTHER PRODUCT OR SERVICE.

THIS SOFTWARE WILL PERFORM AS DESCRIBED HEREIN ONLY IF PROPERLY APPLIED.
OUR LIABILITY TO YOU IS LIMITED TO REPLACING THE SOFTWARE (FOR REGISTERED
USERS).  WE HAVE NO LIABILITY TO YOU FOR ANY DAMAGE OR LOSS, INCLUDING
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL, CAUSED BY THIS SOFTWARE, DIRECTLY OR
INDIRECTLY.  YOU AGREE TO THE TERMS OF THIS LICENSE BY YOUR DECISION TO USE
THIS SOFTWARE.






Technical support is available through the following sources:

???????????????????????????????????????????????????????????????????????????
? Mail: Griffin Solutions                 ?   Telephone: (912) 953-2680   ?
?       102 Molded Stone Place            ?   Fax:   (912) 953-5517       ?
?       Warner Robins, Georgia 31088, USA ?   CompuServe: 75206.231       ?
???????????????????????????????????????????????????????????????????????????
?  The Consultant BBS, at 718-837-3236, supporting v32bis/HST at speeds   ?
?  from 1200 to 16.8Kbps.  This 4-node ASP-approved BBS features author-  ?
?  direct shareware.                                                      ?
???????????????????????????????????????????????????????????????????????????

 

                             Griffin Solutions
                            Basic Documentation

                             Table of Contents

                               Introduction

Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Shareware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
   Distribution Files. . . . . . . . . . . . . . . . . . . . . . . . . . vi
   Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
   Creating Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
   Switches and Defines. . . . . . . . . . . . . . . . . . . . . . . . . viii
      Numeric Fields ($N+,E+). . . . . . . . . . . . . . . . . . . . . . viii
      Defining Clipper Indexes . . . . . . . . . . . . . . . . . . . . . ix
   Demonstration . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Changes to Version 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . x
Order Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

           High Level Functions/Procedures Functional Listing

Primary Database Handling Routines . . . . . . . . . . . . . . . . . . .  1
File Management Routines . . . . . . . . . . . . . . . . . . . . . . . .  1
dBase Index Handling Routines. . . . . . . . . . . . . . . . . . . . . .  2
dBase Memo Handling Routines . . . . . . . . . . . . . . . . . . . . . .  2
dBase Field Handling Routines. . . . . . . . . . . . . . . . . . . . . .  2
String Handling Routines . . . . . . . . . . . . . . . . . . . . . . . .  3
Date Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
Status and Error Reporting Routines. . . . . . . . . . . . . . . . . . .  4
Default Hook Routines. . . . . . . . . . . . . . . . . . . . . . . . . .  4

                          Technical Reference

AllCaps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
AssignMemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
Alias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
ALock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
Append . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
ClearRecord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
CloseDataBases . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
CopyStructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
CopyTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
CnvAscToStr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
CnvStrToAsc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
CTOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
CurrentArea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
DateGet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
DateGetN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
DatePut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
DatePutN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
DBF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
DBFError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9

                                      i
 Griffin Solutions


dBOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
Deleted. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
DeleteRec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
dEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
DTOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
DTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
FieldCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
FieldDec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
FieldGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
FieldGetN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
FieldLen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
FieldNo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
FieldPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
FieldPutN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
FieldType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
FileExist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
FLock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
FlushDBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Found. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Go . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
GoBottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
GoTop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
IndexOn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
LogicGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
LogicGetN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
LogicPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
LogicPutN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
MemoClear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
MemoGet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
MemoGetLine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
MemoGetN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
MemoInsLine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
MemoLines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
MemoPut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
MemoPutN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
MemoWidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
NumberGet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
NumberGetN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
NumberPut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
NumberPutN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
PadL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
PadR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
RecallRec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
RecCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
RecNo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
RecSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Reindex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Replace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20


                                      ii
                                                              Griffin Solutions

RLock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
SaveMemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
SetCenturyOff. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
SetCenturyOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
SetDateStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
SetDBFCacheOff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
SetDBFCacheOn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
SetDeletedOff. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
SetDeletedOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
SetErrorCapture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
SetExactOff. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
SetExactOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
SetExclusiveOff. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
SetExclusiveOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
SetFileHandles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
SetFilterThru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
SetFlushOff. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
SetFlushOnAppend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
SetFlushOnWrite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
SetFormulaProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
SetLockOff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
SetLockOn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
SetOrderTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
SetStatusCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Skip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
SortTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
StrCompare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
StrDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
StringGet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
StringGetN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
StringPut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
StringPutN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
StripChar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Strip_Flip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
StrLogic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
StrNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
StrWholeNum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
SubStr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
TrimL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
TrimR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Unique_Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
UnLock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
UnLockAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Use. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
ValDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
ValLogic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
ValNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
ValWholeNum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Zap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

                               Error Codes

Error List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

                                     iii
 Griffin Solutions


                         Demonstration Programs

DBase File Creator             [GSDMO_01.PAS]. . . . . . . . . . . . . . 38
DBase File Lister              [GSDMO_02.PAS]. . . . . . . . . . . . . . 38
DBase File Formated Lister     [GSDMO_03.PAS]. . . . . . . . . . . . . . 38
DBase File Updating            [GSDMO_04.PAS]. . . . . . . . . . . . . . 39
DBase File Appending           [GSDMO_05.PAS]. . . . . . . . . . . . . . 39
DBase File Indexing            [GSDMO_06.PAS]. . . . . . . . . . . . . . 39
DBase Memo File Lister         [GSDMO_07.PAS]. . . . . . . . . . . . . . 41
DBase File Structure Lister    [GSDMO_08.PAS]. . . . . . . . . . . . . . 41
DBase Index Creator            [GSDMO_09.PAS]. . . . . . . . . . . . . . 41
DBase Multiple Indexes         [GSDMO_10.PAS]. . . . . . . . . . . . . . 42
DBase Relational File Maker    [GSDMO_11.PAS]. . . . . . . . . . . . . . 42
DBase Relational File Linkage  [GSDMO_12.PAS]. . . . . . . . . . . . . . 43
DBase Relational File Linkage  [GSDMO_13.PAS]. . . . . . . . . . . . . . 44
DBase File Maker               [GSDMO_14.PAS]. . . . . . . . . . . . . . 44
DBase File and Memo Builder    [GSDMO_15.PAS]. . . . . . . . . . . . . . 44
DBase File/Memo Editor (Ext)   [GSDMO_16.PAS]. . . . . . . . . . . . . . 44
DBase Status Checker           [GSDMO_17.PAS]. . . . . . . . . . . . . . 45
DBase Error Handler            [GSDMO_18.PAS]. . . . . . . . . . . . . . 46
DBase File Sorting             [GSDMO_19.PAS]. . . . . . . . . . . . . . 47
DBase Reindexing               [GSDMO_20.PAS]. . . . . . . . . . . . . . 47
DBase Copy File & Structure    [GSDMO_21.PAS]. . . . . . . . . . . . . . 47
Getting More Files Open        [GSDMO_22.PAS]. . . . . . . . . . . . . . 47
DBase Filters                  [GSDMO_23.PAS]. . . . . . . . . . . . . . 48
DBase Editor                   [GSDMO_ED.PAS]. . . . . . . . . . . . . . 49
DBase Viewer                   [GSDMO_VU.PAS]. . . . . . . . . . . . . . 49
DBase File Display             [GSDMOTV1.PAS]. . . . . . . . . . . . . . 49
DBase File Display             [GSDMOTV2.PAS]. . . . . . . . . . . . . . 50

























                                      iv
                                                              Griffin Solutions


                                 INTRODUCTION


FEATURES

Welcome to HALCYON, a series of Turbo Pascal routines for management of
dBase III and IV files.  The routines are designed to do the following:

  - Provide a simple user interface to read and write dBase III and IV
files in a network environment.

  - Allow creation, use and updating of multiple dBase .NDX index files in
reading and updating the dBase III and IV data (DBF) files.  The .MDX index
files are not supported (This may change if demand warrants).

  - Allow creation, use and updating of multiple Clipper .NTX index files
in reading and updating the dBase III data (DBF) files.

  - Allow reading and updating of .DBT memo file entries.

  - Allow creation of new dBase III or IV files.  These routines will work
with either dBase III and IV memo file structures.  However, these formats
are not interchangeable.

  - Provide expanded routines to display, edit, and update dBase files.

  - Provide a file handler interface that provides a simple disk management
capability including file sharing for LANs.

  -  Allow operation under all versions of Object Oriented Turbo Pascal,
including Turbo Pascal for Windows.

  - Do all of the above using only Turbo Pascal--no assembly routines are
used.

  - Apply Object Oriented Programming to create easily usable modules.

One significant difference between version 3.0 and previous releases is the
elimination of Griffin Solutions unique window routines.  These were mainly
included to allow demonstration of the routines and were not intended to be
central to the database engine routines.  They have been eliminated to allow
better interface to MicroSoft Windows and Borland TurboVision, as well as
the many commercial, shareware, and public domain windowing packages.  If
there is enough demand, the old window routines will be dusted off, polished
up, and provided as a separate package at minimal cost.


SHAREWARE

HALCYON is copyrighted. It is not a public domain program.  It is being
distributed as Shareware, which means that unmodified copies of the software
and documentation may be freely copied and shared.  I ask in return that


                                      v
 Griffin Solutions


should you find HALCYON to be useful, you become a registered user.  You
become registered by filling out the order form at the end of this paper
and including a check for $89.95. For your convenience, the order form is
included as a separate file as well (ORDER.FRM).  Alternatively, you may
order online through CompuServe.  Type GO SWREG, and register Software
Registration Number 765.

By registering you will get:

        o  The right to use the Griffin Solutions routines in your
           programs, including any commercial application.  (This
           right does not extend to distributing the Griffin Solutions
           source code.  However, executable code may be freely dis-
           tributed)

        o  A copy of the latest version of the program.

        o  Automatic notification of major program updates.

        o  Technical support (one year).

        o  A printed user's manual.

The shareware philosophy is to pay smaller amounts for well-crafted and
useful software from developers who cannot spend the millions of dollars on
marketing necessary to compete with the large software development
companies.  You benefit by being able to try a wider variety of software
products to find the ones that suit your particular purpose. And the trial
is free. The shareware developer benefits from being able to distribute his
work to a wider audience than would be possible through normal channels.

Your share of the responsibility for shareware to continue, and to support
the development of more and better products is to distribute your shareware
programs to others and become a registered user of those products you like
and use.


GETTING STARTED

This section will acquaint you with the files on the distribution disk and
show you a demonstration to quickly see what HALCYON can accomplish.

Distribution Files

The following programs should be on the accompanying disk:


HALCYON Units:
--------------
                GS_BUILD.PAS     TPU Builder
                GSOBSHEL.PAS     Primary user interface to HALCYON
                GSOB_DBF.PAS     Basic dBase file handling routines


                                      vi
                                                              Griffin Solutions


                GSOB_DBS.PAS     Advanced dBase routines
                GSOB_DSK.PAS     Disk I/O routines
                GSOB_DTE.PAS     Date handling routines
                GSOB_EDT.PAS     Editor routines (non-Windows)
                GSOB_FLP.PAS     Floating point conversion
                GSOB_GEN.PAS     Generate test dBase files
                GSOB_INX.PAS     Virtual table routines
                GSOB_MMO.PAS     Memo file routines
                GSOB_NDX.PAS     Index routines (dBase .NDX)
                GSOB_NTX.PAS     Index routines (Clipper .NTX)
                GSOB_OBJ.PAS     Basic object structures
                GSOB_STR.PAS     String handling routines
                GSOB_VAR.PAS     Global variables
                GSV_FLDS.PAS     Field handling for TurboVision
                GSXT_BRO.PAS     File Browser Unit
                GSXT_SCH.PAS     File Searcher Unit

Text Files:
-----------
                CHANGES .TXT     Latest version changes
                GS_HELP .ASC     Basic Documentation for HALCYON
                ORDER   .FRM     Registration Form
                READ    .ME      Quick introduction file
                TESTDATA.FIL     Data to construct test files
                WISDOM  .FIL     Quotes to construct memo records


Demonstration Files:
--------------------
                GSDMO_01.PAS     DBase File Creator
                GSDMO_02.PAS     DBase File Lister
                GSDMO_03.PAS     DBase File Formated Lister
                GSDMO_04.PAS     DBase File Updating
                GSDMO_05.PAS     DBase File Appending
                GSDMO_06.PAS     DBase File Indexing
                GSDMO_07.PAS     DBase Memo File Lister
                GSDMO_08.PAS     DBase File Structure Lister
                GSDMO_09.PAS     DBase Index Creator
                GSDMO_10.PAS     DBase Multiple Indexes
                GSDMO_11.PAS     DBase Relational File Maker
                GSDMO_12.PAS     DBase Relational File Linkage
                GSDMO_13.PAS     DBase Relational File Linkage
                GSDMO_14.PAS     DBase File Maker
                GSDMO_15.PAS     DBase File and Memo Builder
                GSDMO_16.PAS     DBase File/Memo Editor (External)
                GSDMO_17.PAS     DBase Status Checker
                GSDMO_18.PAS     DBase Error Handler
                GSDMO_19.PAS     DBase File Sorting
                GSDMO_20.PAS     DBase Reindexing
                GSDMO_21.PAS     DBase Copy File and Structure
                GSDMO_22.PAS     Getting More Files Open
                GSDMO_23.PAS     DBase Filters


                                     vii
 Griffin Solutions

Demonstration Files (Other Than dBase Engine):
----------------------------------------------

                GSDMO_ED.PAS     DBase Editor
                GSDMO_VU.PAS     DBase Viewer
                GSDMOTV1.PAS     DBase File Display
                GSDMOTV2.PAS     DBase File Display
                SHOWOFF .EXE     Demonstration program
                SHOWOFF .PAS     Demonstration program source
                SMPLSTUF.PAS     Extra screen display routines
                TESTBROW.PAS     File Browser Demonstration
                TESTFIND.PAS     Record Finder Demonstration
                TESTFRM1.PAS     User-assigned Formulas for Indexes (#1)
                TESTFRM2.PAS     User-assigned Formulas for Indexes (#2)
                TESTPICK.PAS     Using a Pick List for dBase Records
                TESTSCH1.PAS     Searching a dBase File for Key Word
                TESTSCH2.PAS     Searching with Progress Reporting
                TUTOR1  .DBF     Demonstration sample dBase File
                XTRASTUF.PAS     Extra dBAse field display routines


External Editor Files:  (Public domain, used to show external editor call)
----------------------

                TE      .DOC     TE 2.5 User's Guide (10 pages)
                TE      .EXE     The actual Text Editor program
                TEG     .HLP     TE 2.5 Command Summary (1 page)
                TEMOD   .EXE     Utility to change TE.EXE options
                TEREAD  .1ST     Information file


 Installation

 Installation consists of copying these files to your hard disk.  The basic
 documentation may be printed by typing 'COPY GS_HELP.ASC PRN' at the DOS
 prompt.  It is formatted for 8.5" X 11" paper and 10-pitch font.

 Creating Files

 File creation routines are not part of the shell routines.  Although file
 structure creation is very simple, it does require the use of an object.
 An example of how to create a file is demonstrates in GSDMO_14.PAS.

 Switches and Defines

 Numeric Fields ($N+,E+)

 Numeric fields may be read into your program as real values to allow
 them to be used for calculation.  Although the precision of a real value
 is smaller than the extended type (11-12 significant digits vice 19-20
 digits) used in dBase, it is completely sufficient for most applications.

 If you need the extra precision of 19-20 digits, these routines will
 adjust automatically.  Routines using real numbers have been modified to

                                      viii
                                                               Griffin Solutions

 be of type FloatNum.  FloatNum is in unit GSOB_VAR.PAS, and will
 automatically adapt to real or extended type.  To allow numbers to have
 up to 20 significant digits the $N+ and $E+ switches must be set (Alt
 O,C,8,E in the IDE).  Otherwise, 11-12 digits will be used.  The use of
 the $N+,E+ switch adds 10K to program size.  You must rebuild all unit
 TPUs when the option is changed to cause them to be recompiled with the
 new switch settings.

 In the command line compiler use the /$N+/$E+ switch settings.  For
 example:

            TPC MyProg /$N+/$E+/B

 When you compile a program in the $N+,E+ state, the compiler links with
 the full 80x87 emulator.  The resulting .EXE file can be run on any
 machine, regardless of whether that machine has an 80x87. If an 80x87 is
 present, the program will use it; otherwise, the run-time library
 emulates it.  This gives you access to four additional real types:
 Single, Double, Extended, and Comp.  The $E+ directive will emulate the
 80x87. This gives you access to the IEEE floating-point types without
 requiring that you install an 80x87 chip.

 Defining Clipper Indexes

 Halcyon can handle Clipper index (.NTX) operations.  The unit
 GSOB_NTX.PAS will be substituted for the GSOB_NDX.pas by adding a
 conditional define to the complier options.  In the IDE this is done in
 the Options|Compile menu, selecting Conditional Define, and adding
 CLIPPER as a Define item.  You must then recompile using the
 Compile|Build option to force recompilation of units that will use
 the index.

 In the command line compiler use the /D option, for example:

      TPC MyProg /DCLIPPER/B

 That's the only change necessary to replace .NDX indexes with Clipper
 .NTX indexes.


 Demonstration

 You can run SHOWOFF.EXE to get an immediate feel for the capabilities in
 the HALCYON library of routines.  The source is also included.  This
 program is a data file browser/editor that is very useful for examining the
 data files that are created and modified in the remaining demonstration
 programs.

 1.  Execute the program, and look at the screen display.  You have a
     choice of File, Index, Edit, Append, Browse, and Quit.  You must
     select File before any other choice (except Quit) can be selected.

 2.  By pressing Return with File highlighted, a directory of all .DBF
     files will be displayed, along with the other directories and drives

                                  ix
 Griffin Solutions

     that may be selected.  Choose a file.  If you don't have any, you
     can use TUTOR1.DBF, included with these files.

 3.  Once a file is selected, an existing index (.NDX) file can be chosen
     if it exists.  This is done through the Index selection.

 4.  You may now Edit, Append, or Browse the file.  Help information is
     for these functions is available by pressing F1 in the function.

 5.  A new file may be opened by returning to the File menu selection.

 To get the feeling of the speed and features of HALCYON, run the set of
 demonstration programs starting with GSDMO_01.PAS.  These are described in
 the basic documentation and within the source program itself.


 CHANGES

 Major changes in HALCYON Version 3.0:
 ??????????????????????????????????????

      -  A new user interface is included that makes the 'object' part of
 object oriented programming transparent.  The programmer simply uses a
 set of commands similar to the dBase commands to control the file access.

      -  The routines work under all versions of Turbo Pascal from 5.5 on
 through 7.0.  The routines work equally well in Turbo Pascal for windows.
 Routines will work in real or protected mode.

      -  File sharing is allowed in network environments.

      -  More than 15 files can be used at the same time by using a command
 to increase the number of files available.

      -  File sorting is allowed.

      -  File copying, and copying of the file structure only, is allowed.

      -  File filters are permitted by hooking user routines to file reads.
 The user interface required to set up the hook is minimal.

      -  Index processing is much faster in version 3.0.

      -  Reindexing has been added to simplify Pack operations.  All open
 index files are reindexed automatically upon a call to Reindex.

      -  The number of indexes allowed per file is increased to 64.  This
 can be changed by the programmed.

      -  The user has the ability to hook status and error reports to take
 whatever actions are needed.

      - Routines used for conversion to/from numbers have been modified to
 be of type FloatNum.  This allows up to 20 significant digits.

                                      x
                                                              Griffin Solutions





                            ORDER/REGISTRATION FORM

        Quan.        Program               Unit Price         Total

        ____         HALCYON  Ver 3.0        $89.95          _______

        ____         HALCYON  Ver 3.0        $25.00          _______
                     (Upgrade for Registered Users of)
                     (GS_dBase 2.8 and earlier       )

        ____         GS_DBASE Ver 2.9        $25.00          _______


                     Overseas Shipping        $5.00          _______


                                            Total:           _______

             _____  I have included a check for  :           _______

        (Canadians send Canadian POSTAL MONEY ORDER made payable in US $.)



        DISK SIZE (circle one):        5.25" (360K)      3.5"  (720K)
                                       5.25" (1.2M)      3.5"  (1.4M)


        ** Includes one year free support, current diskette w/manual on disk.

        YOUR NAME: ________________________ COMPANY:  _____________________

        ADDRESS: __________________________________________________________

        CITY: _____________________________ STATE: ____   ZIP: ____________

        DAY TIME PHONE (in case of questions):  ___________________________

        How did you hear about this program? :  ___________________________

                        THANK YOU FOR SUPPORTING SHAREWARE!


                                 Griffin Solutions
                               102 Molded Stone Place
                            Warner Robins, Georgia 31088
                                Voice: (912) 953-2680
                                Fax:   (912) 953-5517
                                 CompuServe 75206.231
                          The Consultant BBS: (718) 837 3236


                                       xi
                                                               Griffin Solutions



                               Griffin Solutions
                                  High Level
                             Functions/Procedures


                              Functional Listing

 Primary Database Handling Routines:

    Function   Alias : string;
    Procedure  Append;
    Procedure  ClearRecord;
    Procedure  CloseDataBases;
    Procedure  CopyStructure(filname : string);
    Procedure  CopyTo(filname : string);
    Function   CurrentArea : byte;
    Function   DBF : string;
    Function   DBFError : integer;
    Function   dBOF : boolean;
    Function   Deleted : boolean;
    Procedure  DeleteRec;
    Function   dEOF : boolean;
    Procedure  Go(n : longint);
    Procedure  GoBottom;
    Procedure  GoTop;
    Procedure  Pack;
    Procedure  RecallRec;
    Function   RecCount : longint;
    Function   RecNo : longint;
    Function   RecSize : word;
    Procedure  Replace;
    Procedure  Select(Obj : byte);
    Procedure  SetDBFCacheOff;
    Procedure  SetDBFCacheOn;
    Procedure  SetDeletedOff;
    Procedure  SetDeletedOn;
    Procedure  SetExactOff;
    Procedure  SetExactOn;
    Procedure  SetFilterThru(UserRoutine : FilterCheck);
    Procedure  SetFormulaProcess(UserRoutine1, UserRoutine2);
    Procedure  Skip(n : longint);
    Procedure  SortTo(filname, formla: string; sortseq: SortStatus);
    Procedure  Use(FName : string);
    Procedure  Zap;

 File Management Routines:

    Function   ALock : boolean;
    Function   FileExist(FName : string) : boolean;
    Function   FLock : boolean;




                                       1
  Griffin Solutions


    Procedure  FlushDBF;
    Function   RLock : boolean;
    Procedure  SetExclusiveOff;
    Procedure  SetExclusiveOn;
    Procedure  SetFileHandles(hndls : byte);
    Procedure  SetLockOff;
    Procedure  SetLockOn;
    Procedure  SetFlushOff;
    Procedure  SetFlushOnAppend;
    Procedure  SetFlushOnWrite;
    Procedure  Unlock;
    Procedure  UnlockAll;

 dBase Index Handling Routines:

    Procedure  Find(ss : string);
    Function   Found : boolean;
    Procedure  Index(INames : string);
    Procedure  IndexOn(filname, formla : string);
    Procedure  Reindex;
    Procedure  SetOrderTo(order : integer);

 dBase Memo Handling Routines:

    Procedure  AssignMemo(st, nm : string);
    Procedure  MemoClear;
    procedure  MemoGet(st : string);
    function   MemoGetLine(linenum : integer) : string;
    procedure  MemoGetN(n : integer);
    Procedure  MemoInsLine(linenum : integer; st : string);
    function   MemoLines : integer;
    procedure  MemoPut(st : string);
    procedure  MemoPutN(n : integer);
    Procedure  MemoWidth(l : integer);
    Procedure  SaveMemo(st, nm : string);

 dBase Field Handling Routines:

    Function   DateGet(st : string) : longint;
    Function   DateGetN(n : integer) : longint;
    Procedure  DatePut(st : string; jdte : longint);
    Procedure  DatePutN(n : integer; jdte : longint);
    Function   Field(n : byte) : string;
    Function   FieldCount : byte;
    Function   FieldDec(n : byte) : byte;
    Function   FieldGet(fnam : string) : string;
    Function   FieldGetN(fnum : integer) : string;
    Function   FieldLen(n : byte) : byte;
    Function   FieldNo(fn : string) : byte;
    Procedure  FieldPut(fnam, st : string);




                                       2
                                                               Griffin Solutions


    Procedure  FieldPutN(fnum : integer; st : string);
    Function   FieldType(n : byte) : char;
    Function   LogicGet(st : string) : boolean;
    Function   LogicGetN(n : integer) : boolean;
    Procedure  LogicPut(st : string; b : boolean);
    Procedure  LogicPutN(n : integer; b : boolean);
    Function   NumberGet(st : string) : real;
    Function   NumberGetN(n : integer) : real;
    Procedure  NumberPut(st : string; r : real);
    Procedure  NumberPutN(n : integer; r : real);
    Function   StringGet(fnam : string) : string;
    Function   StringGetN(fnum : integer) : string;
    Procedure  StringPut(fnam, st : string);
    Procedure  StringPutN(fnum : integer; st : string);

 String Handling Routines:

    Function   AllCaps(t : string) : string;
    Procedure  CnvAscToStr(var asc, st; lth : integer);
    Procedure  CnvStrToAsc(var st, asc; lth : integer);
    Function   PadL(strn : string; lth : integer) : string;
    Function   PadR(strn : string; lth : integer) : string;
    Function   StrCompare(var s1,s2) : integer;
    Function   StrDate(jul : longint) : string;
    Function   StrNumber(num : real; lth,dec : integer) : string;
    Function   StrWholeNum(num : longint; lth : integer) : string;
    Function   StrLogic(tf : boolean) : string;
    Function   Strip_Flip(st : string) : string;
    Function   StripChar(ch : Char; st : string) : string;
    Function   SubStr(s : string; b,l : integer) : string;
    Function   TrimL(strn : string):string;
    Function   TrimR(strn : string):string;
    Function   Unique_Field : string;
    Function   ValDate(strn : string) : longint;
    Function   ValNumber(strn : string) : real;
    Function   ValWholeNum(strn : string) : Longint;
    Function   ValLogic(strn : string) : boolean;

 Date Routines

    Function   CTOD(strn : string) : longint;
    Function   Date: longint;
    Function   DTOC(jul : longint) : string;
    Function   DTOS(jul : longint) : string;
    Procedure  SetCenturyOff;
    Procedure  SetCenturyOn;
    Procedure  SetDateStyle(dt : DateTypes);







                                       3
  Griffin Solutions


 Status and Error Reporting Routines:

    Procedure  SetErrorCapture(UserRoutine : CaptureError);
    Procedure  SetStatusCapture(UserRoutine : CaptureStatus);

 Default Hook Routines

    Procedure  DefCapError(Code, Info : integer);       (SetErrorCapture)
    Procedure  DefCapStatus(stat1,stat2,stat3:longint);  (SetStatusCapture)
    Function   DefFilterCk: boolean;                    (SetFilterThru)












































                                       4
                                                               Griffin Solutions



                             Technical Reference


 AllCaps                                                      Unit GSOB_Str
       Function  AllCaps(var t : string) : string;

       Function to convert a string to uppercase.  The string to be
       converted is passed as an argument.  A string converted to
       all  uppercase values is returned.


 AssignMemo                                                   Unit GSOBShel
      Procedure  AssignMemo(st, nm : string);

      Reads the memo from field st of the current record of the current
      file and writes it as a text file to file nm.


 Alias
      Function  Alias: string;                                Unit GSOBShel

      Returnd the name of the currently selected database.  This differs
      from DBF() in that only the file name, with no path or extension
      is returned.


 ALock                                                        Unit GSOBShel
      Function  ALock: boolean;

      Locks a file to prohibit any other user from adding new records while
      the requesting user appends a record.  Other users can read/write to
      the rest of the file during this time.

      If successful, a true will be returned.  If unsuccessful, a false will
      be returned and the error code will be found by a call to DBFError.
      If file sharing is not on, the method will return true.

      This routine uses the "dirty read" method by actually locking a record
      region over one billion bytes above the actual file location.   Since
       all Lock calls reference this same offset, other lock requests for
      the same areas will be rejected, but file reads to the true record loc-
      ation will be allowed.


 Append                                                       Unit GSOBShel
      Procedure  Append;

      The procedure adds the current record to the end of the current file.
      If file sharing is on the file will be locked before writing.




                                       5
  Griffin Solutions


 ClearRecord                                                  Unit GSOBShel
      Procedure  ClearRecord;

      Sets current record memory buffer to spaces for the length of the
      record.

 CloseDataBases                                               Unit GSOBShel
      Procedure  CloseDataBases;

      Closes all opened database files from each used area.  The close pro-
      cedure checks to see if the file was updated, and updates the header
      information if required.


 CopyStructure                                                Unit GSOBShel
      Procedure  CopyStructure(filname: string);

      Creates an 'empty' dBase file named filname that contains only the
      structure information from the file (no records) in the current area.
      This is useful for keeping a copy of the file structure for building
      a new file.  If a memo file is present, an empty image of it will be
      copied as well to a DBT file of filname.


 CopyTo                                                       Unit GSOBShel
      Procedure  CopyTo(filname: string);

      Creates a dBase file named filname that is copied from the file in
      the current area.  Records will only be copied if they are valid
      (i.e., deleted records are ignored if SetDeletedOn, and SetFilterThru
      must validate the record as well).  If a memo file is present, it will
      be copied as well.


 CnvAscToStr                                                  Unit GSOB_Str
       Procedure  CnvAscToStr(var asc, st; lth : integer);

      Procedure to convert a ZASCII string (a string terminated by a null 0)
      to a Turbo Pascal string in which the first byte contains the length.

      The asc argument is the ZASCII string to be converted (terminated by
      a zero).  The st argument is the Turbo Pascal string to hold the
      converted value.  The lth argument is the maximum length of the string
      to move.  This should normally  be sizeof(st)-1, to ensure there is no
      overrun of the Turbo Pascal string size.   Sizeof gets the size of the
      string, including the length byte.  Therefore, one  must be subtracted
      to adjust for actual positions available.







                                       6
                                                               Griffin Solutions


      As a result of the call to this procedure, a string of characters in
      memory is moved to a Turbo Pascal string variable.  If there is a null
      (zero) character within the length of the moved string, that position
      is used to set the string length.  Otherwise, the length of the string
      is set to the size argument.


 CnvStrToAsc                                                  Unit GSOB_Str
      Procedure  CnvStrToAsc(var st, asc; lth : integer);

      Procedure to convert a Turbo Pascal string in which the first byte
      contains the string length to a ZASCII string (a string which is
      terminated by a null (zero).
      The st argument contains the Turbo Pascal string to convert.  The asc
      argument is the location to store the converted string (terminated by
      a zero).  Note that asc must be a memory location where the string is
      to be actually stored (such as an array), and not a pointer to the
      location.

      The lth argument is the maximum length of the string to move.  This
      should normally be sizeof(asc)-1, to ensure there is no  overrun of the
      ZASCII string size.  Sizeof gets the maximum size of asc.  Therefore,
      the programmer must ensure the actual string moved is at least one
      less, to adjust for actual positions available, and still accomodate
      a final null byte.

      As a result of this call, a Turbo Pascal string is moved to a series of
      consecutive locations in memory.  A null (zero) character is inserted
      as the final byte to create a ZASCII string.


 CTOD                                                         Unit GSOBShel
      Function  CTOD(strn : string) : longint;

      Function returns a Julian date as a longint value.  The input value
      is a string in MM/DD/YY, MM/DD/YYYY, or YYYYMMDD format.  The date in
      numeric Julian Date value will be returned.  If the date in the
      string field is invalid, less than 3 Mar 0000 or greater than
      31 Dec  65536, a -1 will be returned.


 CurrentArea                                                  Unit GSOBShel
      Function  CurrentArea: byte;

      Returns the number of the currently selected work area assigned by
      Select.








                                       7
  Griffin Solutions


 Date                                                         Unit GSOBShel
      Function  Date : longint;

      Function returns the current date through a system DOS call. The
      value returned will be a numeric longint value representing the
      Julian date value.


 DateGet                                                      Unit GSOBShel
      Function  DateGet(st : string) : longint;

      Function method that returns the date from a record date field. The
      value returned will be a numeric longint value representing the Julian
      Date.  St is the string containing the field name for the field
      desired.

      The date in numeric Julian Date will be returned. If the date in the
      dBase field is invalid, less than 3 March 0000, or greater than 31
      December 65536, a -1 will be returned.

 DateGetN                                                     Unit GSOBShel
      Function     DateGetN(n: integer): longint;

      Returns a julian date value from the field number n.  The value
      returned is the same as in DateGet.  However, DateGetN does not confirm
      the field is a valid date field before retrieving the value.  If a
      valid date was not contained in the field, a 0 will be returned.


 DatePut                                                      Unit GSOBShel
      Procedure  DatePut(st : string; jdte : longint);

      Procedure method that stores a date value in a record field.  The value
      stored will be in numeric Julian Date format.  It will be converted to
      the character string YYYYMMDD to be stored in the dBase record.
      St is the string containing the field name for the field desired. Jdte
      is a longint Julian Date format to be converted and stored in the
      record field.  The date in YYYYMMDD format will be stored in the
      current record in the specified field.


 DatePutN                                                     Unit GSOBShel
      Procedure    DatePutN(n: integer; jdte: longint);

      Converts and stores a date value jdte in field number n.  The value
       stored is the same as in DatePut.  However, DatePutN does not confirm
      the field is a valid date field before storing the value.  If the field
      was not a valid date field, the value stored will be truncated or
      expanded  to fit.





                                       8
                                                               Griffin Solutions


 DBF                                                          Unit GSOBShel
      Function  DBF: string


      Returns the full path name of the current database.


 DBFError                                                     Unit GSOBShel
      Function  DBFError: integer;

      Returns the error code generated by the last file I/O request for
      the current database.


 dBOF                                                         Unit GSOBShel
      Function  dBOF: boolean;

      Returns the flag set when a file read attempt is less than record
      number 1.  for example, the following code will read a file from the
      last record to th

#####  To see the rest of this file, please download it  #####

corner
© 1996-2008. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Publisher: Lars Hagelin.
bootstrapLabs Logo A bootstrapLabs project.