Home Applications IRIS-Components

IRIS-Components Awaiting Review

InterSystems does not provide technical support for this project. Please contact its developer for the technical assistance.
0
0 reviews
0
Awards
8
Views
0
IPM installs
0
0
Details
Releases (1)
Reviews
Issues
Delphi client access components for IRIS database

What's new in this version

Initial Release

TX2IrisQuery – REST‑Backed TDataSet for InterSystems IRIS

TX2IrisQuery is a Delphi component that exposes InterSystems IRIS data through a familiar TDataSet interface. It allows you to run SQL queries, edit records, insert new objects, delete objects, and call IRIS class methods — all through a REST API.

If you already use FireDAC datasets, you’ll feel right at home.

Features

  • Drop‑in TDataSet descendant
    Works like any in‑memory FireDAC dataset (TFDMemTable).
  • Automatic REST integration
    Just assign a TRESTClient and a namespace — the component handles the rest.
  • Full CRUD support
    • SELECT: loads JSON into dataset
    • INSERT: posts new IRIS object
    • EDIT: sends only changed fields
    • DELETE: removes object on server
  • Automatic parameter detection
    SQL parameters like :ID or :Name are auto‑created and applied.
  • Class method execution
    Call any IRIS class method via REST: DoClassMethod('My.Class', 'Method', ['param1', 'param2'])
  • Namespace discovery
    Built‑in script retrieves available IRIS namespaces.
  • Error handling hooks
    Custom event for HTTP protocol errors.

Installation

Simply add the component source to your Delphi project or package:

IRIS/src/X2IrisClient/X2IrisQuery.pas

Register the component in your design‑time package if desired.

Getting Started

1. Register default REST client and namespace (optional)

RegisterDefaultRestClientAndNamespace(RestClient1, 'USER');

2. Drop TX2IrisQuery on a form

IrisQuery.RestClient := RestClient1;
IrisQuery.Namespace := 'USER';

3. Write SQL

IrisQuery.SQL.Text :=
  'SELECT ID, Name, Age, %ClassName As __class FROM Sample.Person';

4. Open the dataset

IrisQuery.Active := True;

Now you can bind it to UI controls, navigate, edit, insert, and delete like any dataset.

CRUD Behavior

Insert

  • Builds JSON from all fields except empty ID
  • Sends to /post endpoint
  • Receives new ID and updates dataset automatically

Edit

  • Only changed fields are sent
  • Memo and wide‑memo fields supported
  • Blob fields are not supported

Delete

  • Sends delete request before removing row locally

Calling IRIS Class Methods

var result := IrisQuery.DoClassMethod(
  'MyApp.Utils',
  'ComputeValue',
  ['123', 'ABC']
);

Returns raw JSON from the server.

Parameters

SQL parameters are auto‑detected:

SELECT * FROM Sample.Person WHERE Name = :Name

Then set:

IrisQuery.Parameters.ParamByName('Name').AsString := 'John';

Namespace Discovery

var list := TStringList.Create;
IrisQuery.GetNamespaces(list, 'USER');
ShowMessage(list.Text);

Notes & Limitations

  • Blob fields are not supported for posting.
  • To enable editing, your SQL must include:
    %ClassName As __class
  • The component expects IRIS REST endpoints:
    • /query
    • /post
    • /delete
    • /procedure

Helper Functions

  • NormalizeScript – cleans IRIS scripts for REST transport
  • Fetch – extracts delimited substrings
  • CheckError – raises exception on failed conditions

License

MIT.

Contributing

Pull requests and suggestions are welcome. If you build additional IRIS components, feel free to extend this repository.

Author

Dmitry Konnov
RocketCitySoft LLC
https://www.rocketcitysoft.com

Version
1.0.005 Jun, 2026
Ideas portal
https://
Category
Integration
Works with
InterSystems IRIS
First published
05 Jun, 2026
Last edited
05 Jun, 2026