Component IBObjects (IBO)

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
IBObjects

IB Objects is the most powerful toolbox available for developing client and service applications for InterBase/Firebird in Delphi and Borland C++Builder without the BDE, ODBC or any other middleware.

IB Objects provides more than 80 components for use with 32bit Delphi and C++Builder. The "native IBO" classes require only a Desktop Developer edition. Professional editions of these products are required only if you need to develop with the TDataset-compatible classes.

Why was IB Objects needed?
Generic client-to-database layers like the BDE, ODBC, dbExpress and ADO hide most of the capabilities of transactional database engines, flattening connectivity to a generic "lowest common denominator". Powerful server databases like InterBase/Firebird and Oracle are made to conform to the behaviors of desktop databases like Paradox or dBase. It takes heavy layering of client and middleware driver code between the user and the database to accomplish this flattening, while disabling essential capabilities of the server databases' engines.

Since everything in InterBase/Firebird happens inside transactions, this approach essentially kills most of the benefits of using client/server for networking mission-critical applications.

IBO cuts right through all this and connects its data access objects directly to the application programming interface (API) of the InterBase/Firebird engine. Your application gets full and complete access to InterBase transaction capabilities - multiple concurrent transactions for a single connection and transactions that span multiple databases with two-phase commit. Four levels of concurrency isolation become available and, with them, the full, flexible range of controls that InterBase provides for optimizing transaction life and resolving lock conflicts.

What about other component suites?
Other component suites can provide direct-to-API connectivity but they do so at the cost of developer control over the logical aspects of transaction-based data processing. They are bitten by the hand that feeds them. In order to implement access to the physical capabilities of the transaction engine while remaining locked into the memory dependency of the VCL's TDataset, they sacrifice the considerable benefits the BDE provided in the way of task management.

Why choose IB Objects?
From the start IBO freed itself from the restrictions of TDataset and its limiting, local database oriented memory model. From the primitive level of TComponent forward, its classes are built on a foundation dedicated solely to how an object interface needs to interact with InterBase/Firebird with greatest effect and efficiency. Along the way, IBO has succeeded in emulating and improving on the logical task environment provided by the BDE to the degree that a developer can choose to be unconcerned with the physical transaction altogether.

An important point of differentiation from other direct access components is IBO's track record of four full, industrial-strength releases and nearly five years of consistent development, spanning all 32-bit Delphi and C++Builder releases and all versions of InterBase/Firebird from InterBase 4.x up. IB Objects won the Delphi Informant Reader's Choice award for Best Database Connectivity product in both 2000 and 2001.

The TDataset-Compatible Classes
If it suits your temporary or permanent requirements best, you can choose to develop with a suite of data access classes inherited from TDataset. This suite completely replaces the VCL equivalents, while retaining complete compatibility with the VCL data-aware controls and third-party control suites through the VCL TDatasource. Additionally, the TIBOQuery and TIBOTable classes are wrapped around a "native IBO" dataset. Several highly useful server-centric features of the native datasets are surfaced for design-time or run-time use.

These components are often used as an aid to "soft" transition from the BDE to IB Objects. Although an eventual full transition to the full capabilities of InterBase client development is the course many developers wish to take, it is perfectly feasible to use the TIBO strain as an easy replacement for the BDE in an existing application, to enhance performance, stability and server-side capability.

Developers maintaining a BDE-based application code base designed to work with different databases can easily generate an optimal, IBO-based version for InterBase by preparing quick conversion templates for global search and replace of units and class names.

Converting an Existing BDE Application
Converting an existing BDE application to use these data access components instead of TDatabase, TTable and TQuery is a straight swap that can be accomplished in less than five minutes with the assistance of the free GReplace tool from Для просмотра ссылки Войди или Зарегистрируйся. IBO comes with a kit of instructions for performing the conversion and two trial projects which you can convert first for practice.

Home: Для просмотра ссылки Войди или Зарегистрируйся
Copyright © Jason Wharton
 

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
IBObjects (IBO) v5.11.1.2861 [full source]
Version 5.11.1 [Build 2861]

I extensively reworked my TIB_StringList class so that it would be much faster at scanning for values stored in it for property settings, schema cache storage, etc. I embedded within it a dynamic array containing a dictionary indexing method using hash values so that in a single pass the entire stringlist can be searched for key value pairs. This improvement should dramatically increase the efficiency of applications that make heavy use of stringlist based property settings. It should also boost the performance of applications that run against databases that have a large number of tables, fields, etc.
I added support for the Firebird API call fb_cancel_operation. See TIB_Connection.FBCancelOperation() method.
I added file information to TIB_ClientDLL component about the client DLL file loaded and being used to talk to the server.
I fixed an issue with the parsing of Filter clauses so that it handles more complicated expressions.
I fixed an issue where the TIB_Cursor.APIFirst method call didn't get the NULL status just right in some circumstances.
I fixed an issue having to do with DefaultValues and boolean columns in TIBODataset components.
I fixed an issue having to do with InvalidateBookmark() method in TIBODataset components.
I fixed an issue with the TIB_Grid and cached updates where there was an interger overflow error.
I enhanced the IBF_Browse form to allow filtering out of SEC$ and DS$ prefixes.
I made it so that when the connection's session is changed to make sure all of the associated transactions are closed up properly.
I had to rework SQLOrderLinks property due to the new TIB_StringList modifications.
I am still working on the DOC engine so there are some changes in that project.

Changes from Magnus:
Added HeaderFieldNames property to TIB_Export.
Added TIB_Connection.NextValue() method.
Added PreventStateEditing, PreventStateInserting, PreventStateSearching, PreventStates and OnPreventState properties to TIB_Dataset.
Скрытое содержимое могут видеть только пользователи групп(ы): Premium

password: dumpz.ws
 

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
IBObjects (IBO) v5.12.1.2967 [Source & Sydney Binary]
Скрытое содержимое могут видеть только пользователи групп(ы): Premium

password: dumpz.ws