Components for Delphi (IBX) - Functional Specification
Delphi's core database functionality is accomplished by two groups of components, namely DataAccess components and DataAware components. DataAccess components encapsulate the interface to a database server. DataAware components are user interface components that are data aware and so can interface with data access components.
DataAccess architecture is quite structured and cleanly abstracted to enable creating custom non-BDE DataAccess components. Such a custom DataAccess mechanism continues to interface with all the standard DataAware components. This functional specification discusses custom DataAccess component set for native InterBase access.
Specializing the standard DataSet component with an InterBase specific interface will provide the basic functionality. This specialization will serve as the top level of our hierarchy. This in itself will not be registered as a component, but rather will provide functionality for its descendants.
Then, this top-level InterBase specific object will be specialized to create Table, Query, StoredProc, IBDataSet, etc. As explained later, such sets of functionality will satisfy both BDE-savvy and new developers.
There will also be direct descendants from the top level of the Delphi component hierarchy, serving various encapsulation and helper functionality such as Database, Transaction, SQLDA, Exceptions, BlobStreams, Batch Processing, etc. More details will be part of the design specification.
- Data access components are non-visual and hence do not have direct end-user usability issues associated.
- But, from a developer standpoint, there will be design time environment provided by these components in addition to the run-time environment.
- The first and the foremost usability feature are achieved by merely complying with the DataSet interface. More specifically, linking DataAware controls through a DataSource component, allowing for navigation, bookmarking, etc.
- Interfacing with built in fields editor by matching InterBase field types with the standard field types with appropriate conversion routines.
- The next usability feature will be to provide an encapsulation of all Database wide issues such connection management, setting DPB, etc Provide an encapsulation for Transaction management in the same way as the Database component.
- Provide an encapsulation for Transaction management in the same way as the Database component.
- The next important usability is to mimic the component interface provided by BDE. This will mean providing the Table, Query and StoredProc and other BDE components with as close a Property, Method, and Event list to facilitate migration.
- For creating new applications, it is unnecessary to use the component set mentioned above. Instead, a catch all DataSet component will be provided.
- Implementing to the standard Provider interface will in itself provide the required usability for the three-tier architecture.
The interface specification will be extracted from the Delphi Pascal unit files directly to avoid duplication of effort. That specification will list the Properties, Methods and Events (PME) for each of the components installed into the Interbase page of the componnet palette Additionally, all helper classes meaningful to the developer will have a PME list in the specification.
Requirements and Constraints
These sets of components are built on top of the Delphi 3 database architecture. They can be used only in 32 bit windows applications and are not compatible with earlier versions of Delphi.
- The same set of components will suffice for C++ Builder 3.0 as well.
- The migration to Delphi 4.0 will have a minimum impact, mostly in the three tier space.
- Obviously, this will establish a baseline for native InterBase access including calling into the API directly. Surfacing Interbase specific features such as Events, Arrays will be deferred for subsequent versions. Although, support for the InterBase transactions, roles, blobs will be part of the first release.
- Depending on available time, Component / parameter editors, internationalization will be addressed for this release.
- Features such as defining and importing attribute sets, alias administration, API tracing to facilitate debugging need to be provided in this or subsequent releases depending on available time.
- Packaging will be through the standard “Component Packaging” feature of Delphi.
- The component set will be developed to work with InterBase 5.0.
- The component set will be compatible for Delphi 3.0 and later.
- It will also be compatible with C++ Builder 3.0 and later.
- A migration document illustrating migration of BDE-based apps to InterBase components will need to be provided.