7 Followers · 187 Posts

Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems.

Learn more.

Question Fernando Zañartu · Mar 3, 2021

Where can I download the Cache ODBC drivers?

Where can I download the Cache ODBC drivers for Windows?

I need to connect to a cache database by odbc but the FPTs that I have found do not work, 
could you tell me where to download the ODBC drivers

16
0 10861
Question Dmitrii Baranov · Dec 21, 2025

I have a business service that actively reads data from a remote Postgres database. OnProcessInput opens a XDBC (actually JDBC) connection, executes an SQL query, fetches several thousand rows, iterates the resultset, and closes the connection. On each iteration I also need to update each source row in the remote database using PreparedStatement.

In other words, in every OnProcessInput call I have a long running SELECT statement and several thousands small UPDATE statements.

The problems I'm facing are:

  1. I cannot execute an UPDATE statement via the same connection that was used before to select
11
0 136
Question Victor Paredes · Jan 7

Hello,

We are accessing an InterSystems Cacha database from Microsoft SQL Server using a linked server over ODBC (ODBC35). Queries are executed using OPENQUERY.

On the SQL Server side, there is a linked server property called Query Timeout. By default it is set to 0 (no timeout). We are considering setting it to 15 seconds and would like to understand how Cache behaves in this scenario.

Specifically, I would like clarification on the following points:

  1. When SQL Server sets a query timeout (for example, 15 seconds), is this timeout visible to or enforced by Cache itself, or is it handled entirely
6
0 109
Article Pietro Di Leo · Dec 9, 2025 4m read

Hello Community! 👋
Welcome to the second part of the IRIS IO Utility series. This extension represents my submission for the InterSystems "Bringing Ideas to Reality" Contest 2025 and offers you an intuitive and powerful interface for importing and exporting data directly inside VS Code.

If you find this extension useful, please consider voting for me at the contest!


In the previous article, we covered:

  • Exten
2
0 105
Article Pietro Di Leo · Dec 8, 2025 4m read

Hello Developers! 👋
I’m excited to introduce IRIS IO Utility, my submission for the InterSystems "Bringing Ideas to Reality" Contest 2025. This VS Code extension provides you an intuitive and powerful interface for importing and exporting data without leaving your IDE. The extension implements and expand this idea submitted on the Ideas Portal turning a common developer need into a real tool: seamless IO operations with any IRIS instance directly inside VS Code.

0
0 90
Article Andreas Schneider · Apr 22, 2025 4m read

When using standard SQL or the object layer in InterSystems IRIS, metadata consistency is usually maintained through built-in validation and type enforcement. However, legacy systems that bypass these layers—directly accessing globals—can introduce subtle and serious inconsistencies.

Understanding how drivers behave in these edge cases is crucial for diagnosing legacy data issues and ensuring application reliability.
The DATATYPE_SAMPLE database is designed to help analyze error scenarios where column values do not conform to the data types or constraints defined in the metadata.

3
0 231
Article Iryna Mykhailova · Nov 20, 2025 4m read

For developers building external applications, especially those using familiar technologies like C#ODBC (Open Database Connectivity) is a crucial, standardized bridge to any relational database, including InterSystems IRIS. While InterSystems offers its own native ADO.NET provider, the ODBC driver is often the most straightforward path for integration with generic database tools and frameworks.

Here is a step-by-step guide to getting your C# application connected to an IRIS instance using the ODBC driver, focusing on DSN-less connection string.

Step 1: Install the InterSystems IRIS ODBC Driver

The InterSystems ODBC driver is installed by default when you install InterSystems IRIS on a Windows machine.

  • If IRIS is on the same machine: The driver is already present.
  • If IRIS is on a remote server: You must download and install the standalone ODBC client driver package for your client operating system (Windows, Linux, or macOS) and bitness (32-bit or 64-bit) from WRC website if you're a client or by installing Client components and copying ODBC driver.

Once installed, you can verify its presence in the ODBC Data Source Administrator tool on Windows (look for the InterSystems IRIS ODBC35 driver).

0
1 103
Question Jerry Wang · Apr 27, 2023

Hi experts

I'm trying to configure an IRIS ODBC connection with "Windows NT authentication using the network login ID". I have created the System DSN as below:

and user (PROD\test) in the SQL Gateway connection 

However, as the error message suggests, IRIS is trying to connect with PROD\svc_mist, rather than PROD\test configured above. 

Is there anyway to configure the ODBC connection with specified account with Windows Auth method? 

3
0 310
Article Arsh Hasan · Oct 27, 2025 1m read

I was facing the same issue as Jerry faced when connecting IRIS to SQL server. My ODBC connection is configured to authenticate via windows authentication.

Configure IRIS ODBC connection with Windows authentication using a
 

How I fixed it for myself?

Root cause

  • The SQL Server DSN was set to Windows Integrated Authentication.
  • IRIS opens the ODBC connection via irisdb.exe, which runs under the IRIS Windows services’ logon account.
  • My IRIS services were running as LocalSystem, so SQL saw the machine account<ORGNAME>\<ASSETID>$. SQL had no login for that identity → 18456 / 28000 “Login failed
0
0 81
Article Arsh Hasan · Jan 14, 2025 1m read

In this tutorial, I will discuss how can you connect your IRIS data platform to sql server db  .

Prereq: 

4
3 559
Question Tom Philippi · Jan 17, 2018

We are trying to make an ODBC connection via our intersystems ensemble (2016.2 running on ubuntu). However, when I am testing the connection I receive a pop-up that: "Http object response incomplete or invalid.0,#R". Note that the iodbctrace.log remains empty (and it is working because on the first try it registered a 459 error that I should activate kerberos, which I did). Any advise where I should look?
I have taken the following actions:

1. Expand the cacheodbc.ini in the mgr directory as follows:

[ODBC Data Sources]
Samples = Samples
Samplesunixodbc = Samplesunixodbc
User = User
Rsmdb =
5
0 1724
Article Dimitri Olchanyi · Apr 8, 2025 2m read

Due to MySQL's interpretation of SCHEMA differing from the common SQL understanding (as seen in IRIS/SQL Server/Oracle), our automated Linked Table Wizard may encounter errors when attempting to retrieve metadata information to build the Linked Table.

(This also applies to Linked Procedures and Views)

When attempting to create a Linked Table through the Wizard, you will encounter an error that looks something like this:

ERROR #5535: SQL Gateway catalog table error in 'SQLPrimaryKeys'.

6
1 269
Question Terry Hastings · Jul 13, 2025

I have set up an ODBC driver for InterSystems and would like to set up a linked server. This all works except I cannot see the columns  details. If I access the database from excel I can get the columns and types of the various tables

Any help or instructions would be appreciated 

Terry

0
0 82
Article Henry Ames · Jun 18, 2025 2m read

I am writing this post primarily to gather an informal consensus on how developers are using Python in conjunction with IRIS, so please respond to the poll at the end of this article! In the body of the article, I'll give some background on each choice provided, as well as the advantages for each, but feel free to skim over it and just respond to the poll.

As most of you are probably aware, Python is currently the most popular programming language among developers around the world - and for good reason.

5
2 260
Article Harry Tong · Jun 6, 2025 2m read

If you're migrating from Oracle to InterSystems IRIS—like many of my customers—you may run into Oracle-specific SQL patterns that need translation.

Take this example:

SELECT (TO_DATE('2023-05-12','YYYY-MM-DD') - LEVEL + 1) AS gap_date
FROM dual
CONNECT BY LEVEL <= (TO_DATE('2023-05-12','YYYY-MM-DD') - TO_DATE('2023-05-02','YYYY-MM-DD') + 1);

In Oracle:

  • LEVEL is a pseudo-column used in hierarchical queries (CONNECT BY). It starts at 1 and increments by 1.
  • CONNECT BY LEVEL <= (...) determines how many rows to generate.
  • The difference between the two dates plus one gives 11, so the query
1
0 216
Article Iryna Mykhailova · Mar 18, 2024 2m read

Recently, the question came up while discussing the access to the data stored in IRIS from different languages with my students if it was possible to initiate the connection and get data from Cloud solution (InterSystems IRIS CloudSQL) from Microsoft Excel, not the other way around. Considering the many varied ways one can get data in Excel (import data from external sources, connecting to databases using ODBC drivers, using power queries and web queries etc.) the obvious choice was to try ODBC driver. The only task left was to try to connect to the database in the cloud using the ODBC driver.

4
0 451
Article Julio Esquerdo · Feb 10, 2025 8m read

Using SQL Gateway with Python, Vector Search, and Interoperability in InterSystems Iris

Part 3 – REST and Interoperability

Now that we have finished the configuration of the SQL Gateway and we have been able to access the data from the external database via python, and we have set up our vectorized base, we can perform some queries. For this in this part of the article we will use an application developed with CSP, HTML and Javascript that will access an integration in Iris, which then performs the search for data similarity, sends it to LLM and finally returns the generated SQL. The CSP page calls an API in Iris that receives the data to be used in the query, calling the integration. For more information about REST in the Iris see the documentation available at https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

1
0 147
Question Sowrick Nandi · Nov 15, 2023

Hello community members!
I am trying to connect to Caché database from Azure data factory using ODBC connection. The aim is to read data from Caché and write it in Azure blob storage using copy activity. The ODBC connection is successful and i can see the Caché  tables, but i'm facing an error while reading the table contents.
I'm getting the below error :

ERROR [HY000] [Cache ODBC][State : S1000][Native Code 400]
[SQLCODE: <-400>:<Es ist ein nicht behebbarer Fehler aufgetreten >]
[Cache Error: <<PROTECT>%0AmBk1^%sqlcq.SYA.cls691.1 ^SB700(""),/database/db4/syb/>]
[Location: <ServerLoop - Query

5
0 539
Article Julio Esquerdo · Feb 10, 2025 7m read

Using SQL Gateway with Python, Vector Search, and Interoperability in InterSystems Iris

Part 2 – Python and Vector Search

Since we have access to the data from our external table, we can use everything that Iris has to offer with this data. Let's, for example, read the data from our external table and generate a polynomial regression with it.

For more information on using python with Iris, see the documentation available at https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_epython

Let's now consume the data from the external database to calculate a polynomial regression. To do this, we will use a python code to run a SQL that will read our MySQL table and turn it into a pandas dataframe:

0
0 156
Article Julio Esquerdo · Feb 10, 2025 4m read

Using SQL Gateway with Python, Vector Search, and Interoperability in InterSystems Iris

Part 1 - SQL Gateway

Hello

In this article we will look at the use of SQL Gateway in Iris. SQL Gateway allows Iris to have access to tables from other (external) database via ODBC or JDBC. We can access Tables or Views from various databases, such as Oracle, PostgreSQL, SQL Server, MySQL and others.

0
0 179
Question Eduard Lebedyuk · May 18, 2016

In MySQL I have the following table:

CREATE TABLE `info` (
   `created` int(11)
);

And it is linked (via JDBC SQL Gateway) to Cache table mysql.info.  `created` field stores unix timestamp. So when I execute  this SQL in SMP:

SELECT created FROM mysql.info

I receive the following output (which is expected):

created
1435863691
1436300964

But I want to to display `created` field converted to ODBC timestamp format. To do that I call this SQL procedure

Class mysql.utils [ Abstract ]
{
/// Unix timestamp to ODBC
ClassMethod uto(unixstamp As %Integer) As %TimeStamp [ SqlName =
3
0 1034
Question Scott Roth · Jan 22, 2025

I am currently experiencing frustration with trying to Authenticate an Active Directory account through JDBC as the Hospital System moves from OnPrem SQL Server to using Azure SQL Server with Microsoft Entra Authentication.

Microsoft cannot give me a straight answer of what is required from a JDBC standpoint to authenticate from a Linux environment.

I am working with WRC, but we are both struggling to find the specific answer for JDBC.If I use my local desktop and JDBC to connect through DBeaver I don't have an issue.

2
0 151
Question Amirul Irfan · Dec 31, 2024

Hi everyone,

I'm trying to connect my Laravel application with the InterSystems IRIS Data Platform using ODBC.I need help setting up the ODBC connection and querying the database properly. What is the proper way to configure Laravel to work with an ODBC connection to InterSystems IRIS?

Any help would be greatly appreciated!

Thanks in advance!

1
0 191
Article Brad Nissenbaum · Apr 3, 2024 3m read

How to create an ODBC connection on your native Windows laptop to IRIS running on a Windows VM on the same computer, test the connection, and pull data from IRIS into Excel.

Recently I learned that Excel can connect to external databases via ODBC. This includes basically any ODBC data source. Since IRIS speaks ODBC via the ODBC API, we can take advantage of the InterSystems ODBC Driver to establish an ODBC connection to IRIS on Windows that Excel can utilize.

Before getting started, make sure you have installed the latest InterSystems ODBC driver on your native Windows, which can either be

2
2 941
Question Qais Azam · Oct 21, 2024

I’m trying to connect to an InterSystems Caché database from my local development environment using an IPv4 address. Most examples I’ve found show how to connect using the ODBC driver with the localhost or the default IP address (127.0.0.1). However, I want to know how to connect using my local IPv4 address.

Here’s what I need help with:

  1. Connecting with IPv4: I want to know how to specify my local IPv4 address in the ODBC connection string or any other method to connect to the Caché database.
  2. Enabling Remote Connections: Additionally, how can I configure InterSystems Caché to allow remote
4
0 313
Discussion Otto Medin · Oct 19, 2024

In the past, I've created custom SQL operations, but now I had something trivial to do, so I decided to take EnsLib.SQL.Operation.GenericOperation out for a spin. There's no example in the docs, so it was a little tricky. Here's what I ended up doing:

In my external database, I have 'mytable' with two fields 'id1' and 'id2'. Here are the pertinent Business Operation settings:

SQL: select id2 from mytable where id1 = ?
Input Parameters: [1] *id1
RequestClass: Ens.StringRequest
ResponseClass: MyResponseClass

To look up 'id2' for the row where 'id1' is "abc", I set 'StringValue' of my request to a

2
0 217
Question Qais Azam · Oct 16, 2024

I am experiencing an issue while executing a stored procedure in InterSystems Cache. Here’s the procedure I created
CREATE PROCEDURE Silk.sp_InsertRecord (
    IN RecordDate TIMESTAMP,
    IN UserName VARCHAR(50),
    IN RecordType INT,
    IN RecordID VARCHAR(50),
    IN CategoryID INT,
    IN ApprovalDate TIMESTAMP,
    IN FileSize BIGINT,
    IN WorkstationName VARCHAR(50)
)
BEGIN 
    INSERT INTO DummyRecords (
        RecordKey, 
        FilePath, 
        RecordDate, 
        UserName, 
        RecordType, 
        RecordID, 
        CategoryID, 
        FileSize
    ) 
    VALUES (
        'd4a4e44b-4b56-4a74

0
0 164