
Introduction

InterBase Objects has been designed with the intention of exposing the full power and flexibility that the InterBase API provides. Along with this are a rich suite of visual controls that harness the newfound performance and efficiency made available.

Right from the GDS32.DLL instance up, IBO is fully object oriented in its approach to delivering all of IB's features. Most all of the base classes have been designed with the intention of allowing your own custom base classes to be derived from them.

You get classes and components to handle the following items:
Sessions, session properties, connections, connection references, transactions, transaction references, statements, statement references, datasets, dataset references, buffered datasets, stored procedures, scripts of multiple statements, process management, exporting to ASCII delimited files, pumping of data from one database to another database, event notifications, SQL/API trace monitoring, user management (IB 5.0 Only), and much much more.

There are also classes built on top of the Delphi 3 TDataset abstract class. (TIBOQuery & TIBOTable) This is so that you can continue to use standard Delphi data aware controls and still be able to remove the BDE from your application. There are also two components which provide InfoPower compatibility (TwwIBOQuery & TwwIBOTable).

For owners of the Client/Server version of Delphi there is also a TIBDatasetTableProducer that works just like the one for TQuery to produce CGI or ISAPI scripting applications. It handles the input parameters and everything.

You get visual controls that offer the following features:
All the standard data aware controls; text, edit box, memo, rich edit, image, list box, combo box, check box, radio group, lookup list box and lookup combo box (with the fastest incremental searching even on LARGE datasets). You also get a search panel, param edit, searching param edit and incremental search edit. There are grids for statements, datasets and buffered datasets. 

The grid control for buffered datasets is rich in features, such as:
Clicking on grid column headings sorts data. Gyphs, custom colors and fonts to indicate current ordering. Great control over cell fonts and colors. Color context for edit, insert and delete states. Character case control. Data row tracking and grid row tracking. Indicates selected row for multi-select operations. Customizable border columns and rows for additional cells in the fixed region of cells. Column sizing and reordering. Inset button for popup operations from a cell (EditLinks). Customizable column ordering and visibility independant from dataset (GridLinks). Much more generous offering of events to handle many more aspects of grid interaction and display. Plus, it's performance is incredible!

All of the data aware controls of IB Objects have a coordination with one another and with the component session to which they belong. Thus, a network of global focusing events are constantly keeping aware of what control has the current focus along with what statement, dataset, datasource, transaction and connection they are bound to. This enables controls like button bars to be configured to "listen" in on the global focusing notifications and keep connected to whatever dataset has the current focus. The same is true for transactions and connections.

Most all of the data aware controls have built-in query-by-example type of functionality but it goes much furthur than that. A dataset can be put into a search state that causes all controls to be used as search criteria entry fields instead of data entry fields. Thus, it becomes very easy to create data entry and data searching forms. Project sizes are seriously reduced and applications become much simpler with these features. Plus, case insensitivity issues are a snap. It's all built-in to the controls to handle this.


These are some important last minute notes for the sample applications.

In order to have form inheritance work properly please locate the 
sample applications in the following directory structure off 
of the IBO component source directory:

..\Samples\Contact  Sample of a small full application.
..\Samples\MDIApp   Global focusing/incremental searching demo. 
..\Samples\KeyLinks Demo of KeyLinks property.     
..\Samples\Events   Demo of IB_Events component and sharing BDE connection. NEW!
..\Samples\TestScan Performance benchmarking app.  

I have added in a sample called CSDEMO which gives an excellent example of how to use InterBase's client/server functionality.

I have added in PriceList ehich gives a good example of how to take advantage of the OnPrepareSQL phase and bind the SELECT statement to various application dependant conditions.

There are a whole bunch of new sample applications in the TDataset\Samples directory that use the Delphi 3 TDataset based components with standard data aware controls. Most notable is the MastApp sample application rewrite in IBO. It's definitly worth a look. Take note of how it does not require modal forms but each non-modal form gets its own unique transaction.

Thanks for reading through this and I hope you find IBO very much to your liking.

Sincerely,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com