|
Sure, there are other ways to open Btrieve files in Windows. Visual Basic 3.0 Professional Edition or Microsoft Access will work for some Btrieve files, if you can find and install the right Btrieve drivers, and if the data is normalized and SQL-compliant, and if you're not very concerned about security, speed, or performance. Unlike other "data controls," Smithware Controls for Btrieve bypasses the Visual Basic Data Access engine. Controls for Btrieve works directly with Btrieve to give you better control over your data, more versatile data access, full use of all the best features of the Btrieve database engine including all indexes and index types, access to all current versions of Btrieve, and a dramatic performance advantage over "generic" database drivers. To retrieve the last record in a large data file, this performance advantage can mean the difference between waiting several hours for the record, and waiting the time it takes to double click the mouse.
Nothing about Controls for Btrieve precludes you from using other methods to access your files, though.
Controls for Btrieve uses the same Btrieve DLL's, and the same data dictionary file (DDF file) format as
the Visual Basic Data Control, so your data will be accessible to the Visual Basic Data Control and its
bound controls as well.
Controls for Btrieve's bound custom controls allow you to develop complete applications without code.
The toolbox controls included with Controls for Btrieve allow you to paint files, fields, indexes, and
record operations on Visual Basic forms. Using standard Visual Basic programming techniques like
picking property values at design time, and responding to events, setting properties, implementing
methods at run time, you can customize your Btrieve database application. Controls for Btrieve adds
library functions to perform special operations such as creating data files, implementing owner name
security, returning a file's status or Btrieve version information, beginning, ending or aborting
transactions, or locking and unlocking records.
Controls for Btrieve is so easy to use, you'll probably never open the manuals. Which is a shame, because
we provide comprehensive documentation to make your job even easier. In addition to the 132-page
Controls for Btrieve User's Guide and Reference Manual, Controls for Btrieve includes context-sensitive
Windows Help, sample code and tutorials, and an advanced programming topics section.
Controls for Btrieve also includes Smithware's DDF Builder for Windows, used by more developers than
any other program to create the standard data dictionary files that tell applications where files, fields and
indices are located in Btrieve databases. Thousands of copies of this award-winning Windows application
have sold for $129.95, but it's yours free with Controls for Btrieve. Use DDF Builder to create a DDF set
for existing Btrieve files so that Controls for Btrieve and other Windows applications can access existing
data, or use it to define and create new Btrieve files. DDF Builder for Windows even integrates Controls
for Btrieve to allow you to open, browse, and modify your data files. DDF Builder also helps if you have
a Btrieve data file of unknown field structure. You can use the DDF Wizard feature to build a boilerplate
DDF based on the index structure of the file, and then use the Find Field feature to locate non-indexed
fields in a record populated with known data values.
Finally, unlike other products which claim to access Btrieve files, Controls for Btrieve installs and
configures everything you need to access Btrieve databases. That includes the Btrieve for Windows v6.15
Client Engine for both Local and NetWare Btrieve access. There's nothing else to buy, license, or install
until you're ready to distribute your applications. With Controls for Btrieve, you get a royalty-free
license to distribute the runtime version of Smithware's Controls for Btrieve. Of course, you must also
license Btrieve for Windows from Btrieve Technologies, Inc. before you can distribute Btrieve
applications or the Btrieve for Windows Client Engine.
The VAccess control connects your Visual Basic application to a Btrieve data file. Controls for Btrieve is
designed to make Btrieve programming in Visual Basic simple and intuitive. But in order to make the
controls as flexible as possible, the VAccess control exposes all of the normal Btrieve API parameters as
properties, allowing you complete control over record access. Properties include the Btrieve file's
Position Block, Data Buffer, Data Length, Index Buffer, Index Length, and Index Number, along with the
status returned by the last call to the record manager.
In addition to the field controls supplied with Controls for Btrieve, any control which has a tag property
and Windows Text can be automatically bound to a field in a Btrieve file. Enabling the VATagControls
property of the VAccess control associated with the file will bind data from the control to any text
control on any form in the Visual Basic project.
Field values within a Btrieve record can be set and retrieved quickly and easily. The field array properties
of the VAccess control put all field information within easy reach in your code. Controls for Btrieve
includes field formats and recognizes more field data types than any other product that supports Btrieve
files. Some of the field information properties include: the total number of fields defined for a file, the
name of a field, the value of the field in the current record, the field's data type, position in the data
buffer, and size, and the standard Visual Basic Format string to be used when displaying the field value.
Stay in control of your data with complete property-based access to all of the elements that define your
data. VAccess control properties let you specify where your DDF files are, select a file definition from
the DDF, and specify which Btrieve file to open. The VAccess control includes full support for all
Btrieve file open modes - normal, exclusive, read-only, or accelerated access, and gives you the
protection of Btrieve file owner-name security and Btrieve transaction processing. Controls for Btrieve
will automatically handle opening and closing of files, or you can set any of these properties at run time
and open the Btrieve files from code. You can even specify one-to-one or one-to-many relationships
between records in different files at design time, using a simple dialog box interface to join VAccess
controls.
Finally the VAccess control gives you a property-based method of performing the following record
operations: Open, FindPercentage, GetByPercentage, Delete, GetDirect, GetEqual, GetFirst, GetGreater,
GetGreaterOrEqual, gestalts, gentles, GetLessOrEqual, GetNext, GetPosition, GetPrevious, Insert,
StepFirst, steepest, StepNext, StepPrevious, Update, and Close. It also provides Events both before and
after any record operation, allowing you to validate and control the display of information.

The scroll bar controls provide simple navigation through a Btrieve database file. They take advantage of
the new percentage functions of Btrieve version 6.x to provide complete scroll bar support.
The command button control attaches to a VAccess control to provide fast, easy record operation
support. Pick a file, pick an operation, and run.
    
Field controls link to fields in your Btrieve record, letting you write a database application almost as fast
as you can place text boxes, combo boxes, list boxes, check boxes, and option buttons on a form. All it
takes to attach one of these controls to a Btrieve file is picking two properties, the VAccess control
which represents the file, and the name of the field. Some of these controls have properties to let you
specify data formats, default values, and other special features, but building a basic application is as easy
as pointing and clicking.
TECHNICAL SPECIFICATIONS - CONTROL PROPERTIES AND EVENTS
VAccess control Properties:
| About | VAFieldDec | VAGetGreaterOrEqual | VAOwnerName |
| Backcolor | VAFieldFormat | VAGetLast | VAPercentage |
| DragIcon | VAFieldId | VAGetLess | VAPosition |
| DragMode | VAFieldIndex | VAGetLessOrEqual | VAPositionBlock |
| Height | VAFieldName | VAGetNext | VARequireOpen |
| Index | VAFieldPosition | VAGetPosition | VASetFieldName |
| Left | VAFields | VAGetPrevious | VAStatus |
| Name | VAFieldSize | VAIndexBuffer | VAStatusDialog |
| Parent | VAFieldType | VAIndexLength | VAStepFirst |
| Tag | VAFieldValue | VAIndexNumber | VAStepLast |
| Top | VAFileID | VAInsert | VAStepNext |
| VAClose | VAFileName | VAJoin | VAStepPrevious |
| VADataBuffer | VAGetDirect | VALocation | VATagControls |
| VADataLength | VAGetEqual | VAOpCode | VAUpdate |
| VADdfPath | VAGetFirst | VAOpen | Visible |
| VADelete | VAGetGreater | VAOpenMode | Width |
VAccess control Events:
VACheckBox control Properties:
| BackColor | FontStrikethru | Name | VAFieldName |
| Caption | FontUnderline | Parent | Value |
| DragIcon | ForeColor | TabIndex | VAOffset |
| DragMode | Height | TabStop | VASize |
| Enabled | HelpContextId | Tag | VAValueFalse |
| FontBold | hWnd | Top | VAValueTrue |
| FontItalic | Index | VAccessName | Visible |
| FontName | Left | VADataType | Width |
| FontSize | MousePointer | VADecimal |
VACheckBox control Events:
| Click | DragOver | KeyPress |
| DblClick | GotFocus | KeyUp |
|
| DragDrop | KeyDown | LostFocus |
VAComboBox control Properties:
| *** | *** | Sorted | VAOffset |
| DragIcon | HelpContextId | Style | VASize |
| DragMode | hWnd | TabIndex | Visible |
| Enabled | Index | TabStop | Width |
| FontBold | Left | Tag |
| FontItalic | ListCount | Text |
| FontName | ListIndex | Top |
| FontSize | MousePointer | VAccessName |
| FontStrikethru | Name | VADataType |
| FontUnderline | NewIndex | VADecimal |
| ForeColor | Parent | VAFieldName |
VAComboBox control Events:
| Change | DragDrop | GotFocus | KeyUp |
| Click | DragOver | KeyDown | LostFocus |
| DblClick | DropDown | KeyPress |
VACommandButton control Properties:
| BackColor | FontSize | MousePointer | VAErrorDialog |
| Caption | FontStrikethru | Name | VALockBias |
| DragIcon | FontUnderline | Parent | VAOperation |
| DragMode | Height | TabIndex | Visible |
| Enabled | HelpContextId | TabStop | Width |
| FontBold | hWnd | Tag |
| FontItalic | Index | Top |
|
| FontName | Left | VAccessName |
VACommandButton control Events:
| Click | DragOver | KeyDown | KeyUp |
| DragDrop | GotFocus | KeyPress | LostFocus |
VAHScrollBar and VAVScrollBar control Properties:
| DragIcon | hWnd | Parent | VAccessName |
| DragMode | Index | TabIndex | Visible |
| Enabled | Left | TabStop | Width |
| Height | MousePointer | Tag |
| HelpContextId | Name | Top |
VAHScrollBar and VAVScrollBar Events:
| Change | GotFocus | KeyUp |
| DragDrop | KeyDown | LostFocus |
| DragOver | KeyPress | Scroll |
VAListBox control Properties:
| BackColor | FontUnderLine | MousePointer | VADataType |
| DragIcon | ForeColor | Name | VADecimal |
| DragMode | Height | NewIndex | VAFieldName |
| Enabled | HelpContextId | Parent | VAOffset |
| FontBold | hWnd | TabIndex | VASize |
| FontItalic | Index | TabStop | Visible |
| FontName | Left | Tag | Width |
| FontSize | ListCount | Top |
| FontStrikethru | ListIndex | VAccessName |
VAListBox control Events:
| Click | DragOver | KeyPress | MouseDown |
| DblClick | GotFocus | KeyUp | MouseMove |
| DragDrop | KeyDown | LostFocus | MouseUp |
VAOptionButton control Properties:
| BackColor | FontStrikethru | Name | VAFieldName |
| Caption | FontUnder | Parent | Value |
| DragIcon | ForeColor | TabIndex | VAOffset |
| DragMode | Height | TabStop | VASize |
| Enabled | HelpContextId | Tag | VAValueFalse |
| FontBold | hWnd | Top | VAValueTrue |
| FontItalic | Index | VAccessName | Visible |
| FontName | Left | VADataType | Width |
| FontSize | MousePointer | VADecimal |
VAOptionButton control Events:
| Click | GotFocus | KeyUp |
|
| DragDrop | KeyDown | LostFocus |
| DragOver | KeyPress |
VAPictureBox control Properties:
| Align | hWnd | Name | VADataType |
| AutoScale | Index | Parent | VADecimal |
| BorderStyle | Left | Picture | VAFieldName |
| DragIcon | LinkItem | TabIndex | VAOffset |
| DragMode | LinkMode | TabStop | VASize |
| Enabled | LinkTimeout | Tag | Visible |
| Height | LinkTopic | Top | Width |
| HelpContextId | MousePointer | VAccessName |
VAPictureBox control Events:
| Click | GotFocus | LinkOpen | MouseUp |
| DblClick | LinkClose | LostFocus |
| DragDrop | LinkError | MouseDown |
| DragOver | LinkNotify | MouseMove |
VATextBox control Properties:
| Alignment | ForeColor | MousePointer | Text |
| BackColor | Height | MultiLine | Top |
| BorderStyle | HelpContextId | Name | UpperCase |
| DragIcon | HideSelection | Parent | VAccessName |
| DragMode | hWnd | PasswordChar | VADataType |
| Enabled | Index | ScrollBars | VADecimal |
| FontBold | Left | SelLength | VAFieldName |
| FontItalic | LinkItem | SelStart | VAFormat |
| FontName | LinkMode | SelText | VAOffset |
| FontSize | LinkTimeout | TabIndex | VASize |
| FontStrikethru | LinkTopic | TabStop | Visible |
| FontUnderline | MaxLength | Tag | Width |
VATextBox control Events:
| Change | GotFocus | KeyUp | LinkNotify |
| DragDrop | KeyDown | LinkClose | LinkOpen |
| DragOver | KeyPress | LinkError | LostFocus |
Library Function Calls:
| VCBtrv(VAccessName As Control, OpCode As Integer ) As Integer |
| VCCreate( VAccessName As Control, lpCreateStruct As BtCreate ) As Integer |
| VCGetFieldValue( VAccessName As Control, ByVal FieldName As String, ByVal FormatString As
String, FieldValue As String ) As Integer |
| VCSetFieldValue( VAccessName As Control, ByVal FieldName As String, ByVal FieldValue As String )
As Integer |
| VCSetOwner( VAccessName As Control, ByVal OwnerName As String, ByVal SecurityLevel As Integer )
As Integer |
| VCStatus( VAccessName As Control, lpStatusBuffer As BtStatus ) As Integer |
| VCTransaction( ByVal OperationCode As Integer ) As Integer |
| VCUnlock( VAccessName As Control, ByVal LockType As Integer ) As Integer |
| VCVersion( lpVersion As BtVersion ) As Integer |
|