Skip to content

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 ​

PropertyTypeDescription
ConnectionNamestringDBX connection name from dbxconnections.ini
DriverNamestringDBX driver name (MSSQL, MySQL, IB, Oracle, etc.)
GetDriverFuncstringDriver function name
LibraryNamestringDriver library filename
VendorLibstringVendor-specific library filename
ParamsTStringsAdditional connection parameters

TInstantDBXConnector ​

Main connector component for dbExpress.

Inheritance:

TComponent → TInstantConnector → TInstantConnectionBasedConnector → TInstantDBXConnector

Properties ​

PropertyTypeDescription
ConnectionTSQLConnectiondbExpress connection component
OnLoginTSQLConnectionLoginEventCustom login handler

TInstantDBXBroker ​

SQL broker for dbExpress.

Inheritance:

TInstantBroker → TInstantSQLBroker → TInstantDBXBroker

Usage Patterns ​

Basic Setup - SQL Server ​

pascal
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 ​

pascal
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 ​

pascal
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 ​

pascal
// Define connection in dbxconnections.ini
Connection.ConnectionName := 'MyDBConnection';
Connection.LoadParamsFromIniFile;

2. Set Driver Properties ​

pascal
Connection.Params.Values['DriverUnit'] := 'Data.DBXMySql';
Connection.Params.Values['DriverPackageLoader'] := 'TDBXDynalinkDriverLoader';

3. Enable Transaction Support ​

pascal
if Connector.CanTransaction then
begin
  Connector.StartTransaction;
  try
    // Operations
    Connector.CommitTransaction;
  except
    Connector.RollbackTransaction;
    raise;
  end;
end;

Limitations ​

  1. Legacy Framework: dbExpress is deprecated in favor of FireDAC
  2. Unidirectional: Datasets are unidirectional by default
  3. Limited Features: Fewer features than modern frameworks
  4. Configuration Complexity: Requires driver configuration

Migration to FireDAC ​

Recommended migration path for new projects:

pascal
// Old (dbExpress)
uses InstantDBX;
Connector := TInstantDBXConnector.Create(nil);

// New (FireDAC - recommended)
uses InstantFireDAC;
Connector := TInstantFireDACConnector.Create(nil);

See Also ​

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)

Released under Mozilla License, Version 2.0.