IBObjects (a Delphi/C++Builder component set to access InterBase and Firebird) offers a superb mechanism called DML Caching to synchronize data changes immediately in your multi-user/client environment. Your application can be configured easily to reflects changes nearly in real-time committed by another.

The DML Caching mechanism is well-described in a help-file available in the Tech Info sheets section on Jason Wharton's web site. Most things are picked out of this Tech Info sheet.

Scope of DML Caching

DML Caching provides synchroniziation in three scopes:

IB LogManager can help you to manage (3) at database level. (3) is also called Global DML Caching and enables you to synchronize data changes within your multi-user environment in a very easy way.

Global DML Caching

To broadcast and receive across application boundaries, the work shifts to the database:

The reason for this "distinct user" requirement is that all instances of applications involved in global caching post their DML events to the cache table. When seeking announcements to synchronize the local instance, the local application must disregard any DML events posted from its own transactions.

In short, Global DML Caching is based on the assumption, that committed changes are logged in a table and each time a new log record is added, an event is fired from an after insert trigger on the operation log table. This event is catched within your client application from the TIB_SyncCursor component and datasets which are registered for DML Caching are synchronized nearly in real-time.

Read how IB LogManager can be used as "Integrator" for DML Caching in your IBO application.