Btrvgen++ v 2.0c

Database code generation system for the Btrv++ class library

Btrvgen++ screen shot
Btrvgen++ lets you define your Tables, Columns and Keys to your database files, define table relationships and then will generate a C++ class interface with the push of a button. Btrvgen++ will work off of an existing DDF or generate one for you.

Btrvgen++ is a Database Generation System for developing C++ applications that use the Btrieve Record Manager via Classic Software's Btrv++™ Class Library for C++. Btrv++ greatly simplifies Btrieve development for C++ programmers, offering order-of-magnitude productivity gains. Btrvgen++ goes even further:

[Bullet] It actually generates C++ classes that represent your database schema and tables, with member functions defined for most everyday uses of Btrieve via the Btrv++ parent class.
[Bullet] Btrvgen++'s generated member functions will provide you with ways to open and close your tables en masse, perform existence tests, counts, and cascading deletes.
[Bullet] Btrvgen++'s generated member functions will provide you with extremely flexible set retrieval operations based on the table's defined keys. Included are both single-record retrieval and iteration functions.
[Bullet] It generates documentation for the generated classes, to enable you to be fully productive with the generated code in the minimum possible time.
[Bullet] It provides member functions for all defined relationships. These functions will enable you to retrieve joined sets of records without any setup whatsoever. You simply define the relationship in terms of matching key structures, cardinality, and ownership vs. referencing. Btrvgen++ takes care of the rest, providing single-record retrieval and iteration functions to support the relationship as you have defined it.
[Bullet] Btrvgen++ also goes beyond the limitations of the relational model to support hierarchical
relationships (self-joins).
[Bullet] Btrvgen++ has a built in full featured Btrieve DDF file editor for Windows. It can merge multiple DDF files into one master DDF, create subsets of DDFs, build DDF files from scratch, Create Btrieve files, import key definitions off of existing file and more. Gain access to your Btrieve files for products like Microsoft Access, Crystal Reports, R&R Report Writer and many other report generators.
[Bullet] Btrvgen++ gives you the means to re-engineer existing databases for which you don't have a DDF data dictionary, because it can read table and key attributes from Btrieve files. You supply the record structure, and Btrvgen++ does the rest.

Define Your Database With Our Easy-to-Use Editor

Btrvgen++'s Schema Editor allows you to define the tables, columns, keys, and relationships within your schema. The Schema Editor has complete on-line help documenting all Btrvgen++ features. With Btrvgen++, it is difficult to violate Btrieve's complex rules for table and index definition.

Use the Code Generator To Produce Thousands of Lines of Ready-to-Use C++ Classes

Btrvgen++'s Class Generator then produces a set of C++ classes derived from the Btrv++ BTRVDBOBJ class, which encompasses all Btrieve functionality and adds many value added features including record and key buffer management. The generated classes include one class for each table and a schema meta-class. You can derive other classes from these to add your own member functions and data to implement non-database tasks or extend the database functionality already present in the generated classes.

Each generated table class manages your record buffer and all key buffers for you, and eliminates the need for key structures except to receive values on return from Btrieve Get-Key operations. Keyed Get operations (e.g. Get Equal, Get Greater Or Equal, etc.) are implemented through member functions that take as arguments the values that would be put in the key buffer data structure. For example, in an order entry system, an order is kept in a table that has two keys, order number (ORDERNUM) and customer ID plus date (CUSTIDDATE). The generated ORDER class will contain the following member functions:

GetFirstORDERNUM(void)
GetLastORDERNUM(void)
ForEachORDERNUM(void)
GetEqualORDERNUM(unsigned OrderID)

Others would be generated to support use of the ORDERNUM key. For the segmented CUSTIDDATE key, there would be similar functions. Among others:

GetGreaterOrEqualCUSTIDDATE(unsigned int CustID, sDATE Date)
GetNextCUSTIDDATE(unsigned int CustID, sDATE Date)
GetGreaterOrEqualCUSTIDDATE(unsigned int CustID)
GetNextCUSTIDDATE(unsigned int CustID)
ForEachByCUSTIDDATE(unsigned int CustID)
ForEachByCUSTIDDATE(unsigned int CustID, sDATE Date)

Constrained set retrieval functions allow you to retrieve sets of records whose contents are determined by partial matches on segmented keys and complete matches on duplicate keys. The sets produced are equivalent to using a SQL query like SELECT * FROM ORDER WHERE CUSTID = x AND DATE = y.

Btrvgen++ Classes Implement Relationships, Too!

Btrvgen++ uses the constrained set retrieval approach to generate functions that implement standard operations for all defined relationships between the tables in your database. For example, in an order entry system, an order is kept in a table that is on the "many" side of a one-to-many relationship with the customer table, and on the "one" side of a one-to-many relationship with the order-line-item table. The order-line-item table is on the "many" side of a one-to-many relationship with an inventory item table.

Generated Code Makes Your Life Easier in So Many Ways

There are many benefits to generated code, not least among them being the dramatically increased level of productivity. But another less obvious benefit is consistency. Once you get used to working with Btrvgen++-generated classes, you will know what functions are available, what their names are, and what the arguments are. If you know the schema and you know the structure of the generated classes, the code generator ensures the functions are there, with consistent naming and argument conventions, every time.

All the database access power you need to create dynamite applications will be at your fingertips. Rather than spending days struggling with the details of Btrieve you'll focus on what you do best — designing and coding applications to meet your customers' needs!

Requirements

Although Btrvgen++ generates classes that can be compiled to work in any Btrieve environment supported by Btrv++ (DOS, Windows, Win32 and OS/2). Btrvgen++ itself is a Windows program, and it requires Windows 3.1, Windows NT or Windows 95, the Btrv++ class library, and a C++ compiler such as Microsoft Visual C++, Borland C++ (3.1, 4.x, 5.x), Symantec, IBM, etc. Btrvgen++ also comes with the Btrieve run-time library for Windows (wbtrcall.dll versions 5.x and 6.x).

Click here for a set of graphical images showing how easy it is to use Btrvgen++.

Key Benefits of Btrvgen++

Our tools provide support for all versions of Pervasive SQL, Btrieve, and Netware Btrieve (32 or 16 bit). Supported software products include Crystal Reports, Macola, Great Plains, Dynamic, Platinum, Peachtree, Maximizer and many others. Programming tools supported include Visual Basic, Visual C++, Access, Visual Foxpro, Visual J++, ODBC and OLE DB drivers, VBA enabled applications and many other tools and utilities.

[HRule Image]

Pricing

Although Btrvgen++ does require Btrv++, you can purchase both together 
for one low price.

DESCRIPTION                 PRICE    
Btrvgen++                   $229.95  
Btrv++                      $249.95  
Btrvgen++,Btrv++ bundle     $349.95  

Order Btrv++ or Btrvgen++.

[HRule Image]

Copyright © 1996, 1997, 1998, 1999, 2000, 2001, 2002 by Classic Software, Inc. All rights reserved.
All specifications subject to change without notice.
Data Manager for Pervasive SQL and Btrieve, Developers Toolkit for Pervasive SQL and Btrieve, 32 Bit Power Pack for Btrieve, Classic Data Control for Btrieve, Btrv++, Btrvgen++, DDF Maker, and VBtrv Toolbox Controls for Btrieve are trademarks of Classic Software, Inc.
Btrieve and Pervasive SQL are a registered trademark of Pervasive Software.
Other products and companies referred to herein are trademarks or registered trademarks of their respective companies or mark holders.
Send mail to sales@classicsoftware.com with questions or comments about this web site.
For technical support send mail to support@classicsoftware.com
Classic Software, Inc.
7665 Athenia Drive
Cincinatti, OH 45244 USA
Phone: 513.232.6764
Sales: 800.677.2952
Fax: 786.221.2553 or 888.456.3464