InstantDBX
dbExpress broker for multiple database engines.
Overview
The InstantDBX unit provides database persistence using Borland's dbExpress (DBX) framework, a lightweight database access layer supporting multiple databases.
Supported Databases:
- Microsoft SQL Server
- MySQL
- InterBase/Firebird
- Oracle
- IBM DB2
- Informix
- PostgreSQL
Key Features:
- Lightweight dbExpress architecture
- High-performance unidirectional datasets
- SQL-based broker implementation
- Cross-database compatibility
- Transaction support
Note: dbExpress is a legacy framework. For new projects, use InstantFireDAC which provides better performance and modern features.
Key Classes
TInstantDBXConnectionDef
Connection definition for DBX broker.
Properties
| Property | Type | Description |
|---|---|---|
| ConnectionName | string | DBX connection name from dbxconnections.ini |
| DriverName | string | DBX driver name (MSSQL, MySQL, IB, Oracle, etc.) |
| GetDriverFunc | string | Driver function name |
| LibraryName | string | Driver library filename |
| VendorLib | string | Vendor-specific library filename |
| Params | TStrings | Additional connection parameters |
TInstantDBXConnector
Main connector component for dbExpress.
Inheritance:
TComponent → TInstantConnector → TInstantConnectionBasedConnector → TInstantDBXConnectorProperties
| Property | Type | Description |
|---|---|---|
| Connection | TSQLConnection | dbExpress connection component |
| OnLogin | TSQLConnectionLoginEvent | Custom login handler |
TInstantDBXBroker
SQL broker for dbExpress.
Inheritance:
TInstantBroker → TInstantSQLBroker → TInstantDBXBrokerUsage Patterns
Basic Setup - SQL Server
uses
InstantDBX, Data.DBXCommon, Data.SqlExpr;
var
Connection: TSQLConnection;
Connector: TInstantDBXConnector;
begin
Connection := TSQLConnection.Create(nil);
Connection.DriverName := 'MSSQL';
Connection.Params.Values['Database'] := 'MyDatabase';
Connection.Params.Values['HostName'] := 'localhost';
Connection.Params.Values['User_Name'] := 'sa';
Connection.Params.Values['Password'] := 'mypass';
Connector := TInstantDBXConnector.Create(nil);
Connector.Connection := Connection;
Connector.IsDefault := True;
Connector.Connected := True;
end;Basic Setup - MySQL
Connection.DriverName := 'MySQL';
Connection.Params.Values['Database'] := 'mydb';
Connection.Params.Values['HostName'] := 'localhost';
Connection.Params.Values['User_Name'] := 'root';
Connection.Params.Values['Password'] := 'mypass';Basic Setup - Firebird
Connection.DriverName := 'Interbase';
Connection.Params.Values['Database'] := 'C:\Data\MyDatabase.fdb';
Connection.Params.Values['User_Name'] := 'SYSDBA';
Connection.Params.Values['Password'] := 'masterkey';
Connection.Params.Values['SQLDialect'] := '3';Best Practices
1. Use Connection Names
// Define connection in dbxconnections.ini
Connection.ConnectionName := 'MyDBConnection';
Connection.LoadParamsFromIniFile;2. Set Driver Properties
Connection.Params.Values['DriverUnit'] := 'Data.DBXMySql';
Connection.Params.Values['DriverPackageLoader'] := 'TDBXDynalinkDriverLoader';3. Enable Transaction Support
if Connector.CanTransaction then
begin
Connector.StartTransaction;
try
// Operations
Connector.CommitTransaction;
except
Connector.RollbackTransaction;
raise;
end;
end;Limitations
- Legacy Framework: dbExpress is deprecated in favor of FireDAC
- Unidirectional: Datasets are unidirectional by default
- Limited Features: Fewer features than modern frameworks
- Configuration Complexity: Requires driver configuration
Migration to FireDAC
Recommended migration path for new projects:
// Old (dbExpress)
uses InstantDBX;
Connector := TInstantDBXConnector.Create(nil);
// New (FireDAC - recommended)
uses InstantFireDAC;
Connector := TInstantFireDACConnector.Create(nil);See Also
- InstantFireDAC - Recommended replacement
- InstantBrokers - Broker architecture
- InstantPersistence - Persistence infrastructure
Source Code
File: InstantDBX.pasLocation: Source/Brokers/DBX/
Summary
The InstantDBX broker provides database persistence using dbExpress, a lightweight cross-database framework.
Status: Legacy - Use InstantFireDAC for new projects.
Best for:
- Legacy applications using dbExpress
- Migration scenarios
Not recommended for:
- New projects (use FireDAC instead)
