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.