7 Followers · 187 Posts

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

Learn more.

Article vp123 · Oct 31, 2022 5m read

It has been asked a few times recently, how one can make Laravel Framework work with InterSystems IRIS Data Platform. It's been a while since this post about Laravel and InterSystems Caché was published. To bring it up to date, the article gives a brief instruction set on how to setup and configure a Laravel project for use with InterSystems IRIS through ODBC.

What is Laravel?

Laravel is a PHP framework that is based on MVC architecture.Using Laravel simplifies and speeds up the backend development while building modern secure web applications.

5
2 1337
Article Murray Oldfield · Sep 24, 2024 7m read

Problems with Strings

I am accessing IRIS databases with JDBC (or ODBC) using Python. I want to fetch the data into a pandas dataframe to manipulate the data and create charts from it. I ran into a problem with string handling while using JDBC. This post is to help if anyone else has the same issues. Or, if there is an easier way to solve this, let me know in the comments!

I am using OSX, so I am unsure how unique my problem is. I am using Jupyter Notebooks, although the code would generally be the same if you used any other Python program or framework.

The JDBC problem

When I fetch data from

0
0 573
Question Rodolfo Moreira dos Santos · Jan 10, 2020

Hello, I need to use IRIS to connect to an MSSQL base.
It has to be done via ODBC, I can't use JDBC at this time by client option.

I am trying to use Microsoft Driver
libmsodbcsql-13.1.so.9.2

But I can't, my attempts result in:
Connection failed.
SQLState: () NativeError: [11001] Message:

I have done all DSN configuration, and my configuration is listed in SQL Gateway Connections. I know it's working, because when I run a test with isql I have the information that connects to the bank.

This is my IRIS and Server configuration:
IRIS for UNIX (Ubuntu Server LTS for x86-64) 2018.1.1 (Build 643U)

3
1 994
Question Saghir Hussain · Jul 10, 2024

Hi

I get the following error when I am trying to create a linked server connection via MS OLE DB Provider for ODBC Drivers in MS SQL Server Management Studio. The message I get is:

The OLE DB provider "MSDASQL" for linked server "IRIS" reported an error. The provider did not give any information about the error.
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "IRIS". (Framework Microsoft SqlClient Data Provider)

I have setup the InterSystems ODBC setting on the server. Have enabled a number SPN settings but still getting this error

The full error message is :

2
0 1001
Question Stephen Bolt · Apr 22, 2022

Hi,

I'm very new to InterSystems  Health Connect so may be doing something silly...

I'm trying to link to an Oracle DB view using the Link Table Wizard in the Management Portal. The wizard finds the view, but when I select it and click the 'next' button I get an error on the 'Select Columns' screen: 'ERROR #5534: Columns error' (and no columns show in the wizard). I've tried on several views and tables in the same DB but keep hitting the same error.

I have previously successfully mapped a view and table from the same DB and am not sure what I am doing differently. Any suggestions appreciated!

2
0 557
Article Benjamin De Boe · Jun 6, 2024 4m read

We're excited to continue to roll out new features to InterSystems IRIS Cloud SQL, such as the new Vector Search capability that was first released with InterSystems IRIS 2024.1. Cloud SQL is a cloud service that offers exactly that: SQL access in the cloud. That means you'll be using industry-standard driver technologies such as JDBC, ODBC, and DB-API to connect to this service and access your data. The documentation describes in proper detail how to configure the important driver-level settings, but doesn't cover specific third-party tools as - as you can imagine - there's an infinite number of them.

In this article, we'll complement that reference documentation with more detailed steps for a popular third-party data visualization tool that several of our customers use to access IRIS-based data: Microsoft Power BI.

17
0 627
Question Kurt Hofman · Oct 6, 2023

I've created a succesfull connection to Caché from SQL Server.

But when I run a SELECT on a table it gives an error on for example PrijsAkCatV.

Probably a datatype-error.

Does someone has a solution for this problem ?

Caché Table :

Property PrijsAkCatVm As Asci.Getal(CAPTION = "Aankoopprijs VM", HINT = "Bruto aankoopprijs in vreemde munt|De bruto aankoopprijs (catalogusprijs) in vreemde munt per eenheid van aankoop.#Prix d'achat brute en devise|Le prix d'achat brute en devise par unité d'achat.", SCALE = 4);
 

Class Asci.Getal Extends %Library.Numeric
{Parameter HINT;Parameter VIEW = 1;Parameter

4
0 478
Question Joseph Tsang · Mar 22, 2019

From time to time we develop an Ensemble Production with simple SQL Inbound data from external databases, we need to develop a few new classes. There are at least:

  • 1 Ens.Request class with the fields captured from the SQL ResultSet
  • 1 Business Service class using SQL Inbound Adaptor, and in the OnProcessInput(), copy the relevant field data from ResultSet to the new Ens.Request, and call either ..SendRequestSync() or ..SendRequestAsync().

Let's say, if these codes can be generated automatically in order to make the entire development more "low code".

3
0 490
Question A J · May 27, 2024

Hi everybody, I am trying to connect with an IRIS database where to retrieve data and import them to SQL server but the access gets denied. I would appreciate your help, Thank you, Jeb

I have following information:

Data Source Name --> I use it as the server name

Host(IP Address)

Port

Namespace --> I could use it in my script

import pyodbc

connection_string = ( "DRIVER={InterSystems IRIS ODBC35};" "SERVER=;" "PORT=;" "DATABASE=________;" "TrustServerCertificate=yes;" )

try: conn = pyodbc.connect(connection_string) print("Connection successful") except pyodbc.Error as ex: sqlstate = ex.args[1]

5
0 296
Question Andreas Schneider · Jun 1, 2024

Hi all! 

How can I get the ODBC drivers for IRIS 2024.1 if I am only using IRIS 2024.1 Community Edition? 
This page gives you the information: "The official location for customers to download the latest released and fully supported InterSystems IRIS driver packages is the WRC download site." My first thought on this is: Why does Intersystems make it so difficult for users to use their database? Why is the ‘official’ driver package hidden behind a login wall? Shouldn't Intersystems be happy if someone wants to work with their database, wants to connect?

Any Way: Community Edition users are

4
0 749
Article Hiroshi Sato · May 30, 2024 1m read

InterSystems FAQ rubric

To disable the timeout, set the query timeout to disabled in the DSN settings:

Windows Control Panel > Administrative Tools > Data Sources (ODBC) > System DSN configuration

If you check Disable query timeout, the timeout will be disabled.

If you want to change it on the application side, you can set it at the ODBC API level.

Set the SQL_ATTR_QUERY_TIMEOUT attribute when calling the ODBC SQLSetStmtAttr function before connecting to the data source.

0
0 401
Question Robert Steed · May 21, 2024

I created %ZSTART, having just learned about it. I included some minimal code to test it, as follows:
%ZSTART
SYSTEM
         WRITE "SYSTEM.",!
         QUIT
JOB
         WRITE "JOB.",!
         QUIT
LOGIN
         WRITE "LOGIN.",!
         QUIT
CALLIN
         WRITE "CALLIN.",!
         QUIT

Now Terminal still works as normal, and sure enough I get "LOGIN" displayed, but when I start Studio I get an error message such as the following. I wonder what Caché ODBC has to do with it.

---------------------------
Studio
---------------------------
Unable to log on to server BOBSCACHE, namespace APEX
[Cache

3
1 243
Article Eyal Levin · Apr 9, 2024 1m read

Hi, I hope this post helps.

The bottom line: MAXLEN is relevant mostly for odbc/jdbc connections and you need to specify an appropriate value within your  tables (classes), otherwise the data might be truncated when you query it, or even fail when you try to insert data.

Long story:

the sql GUI in the portal is very lenient in reference to the MAXLEN  , for example you can insert data into a table where there is data longer then the size of a column, if you're using fhir sql the columns in the tables are mostly MAXLEN =50 even if there is much larger data, additionally if you create a table from

7
0 500
Article Eyal Levin · Apr 8, 2024 1m read

Hi,

I was struggling with a procedure that was meant to receive a string and use it as a filter, I've found that since I want the procedure to do some data transformation and return a dataset, I needed to use objectScript language.

I've created the procedure using the SQL GUI in the portal, and everything works fine when calling the procedure from the SQL GUI but not through a JDBC connection here is the call "call spPatientOS('2024-04-07T12:35:32Z')"

the bottom line is that the procedure was created with the parameter defined as STRING(MAXLEN=1) which means that my parameter from the jdbc was

2
0 344
Question Jordan Everett · Apr 15, 2024

Hey everyone,

I'm currently running into a very weird issue to where I am trying to connect with a 64 bit version of SQL Server Management Studio (SSMS) to a HealthShare instance. I have created a System DSN using the Drivers (image below) that were downloaded with the Client version of the install and I'm able to successfully connect using my credentials.

After I have my System DSN (image below) configured, I go into SSMS and add a Linked Server that is referencing the System DSN that was created.Also, I change the provider to be Microsoft OLE DB Provider for ODBC Drivers.

2
0 778
Article Ewan Whyte · Mar 19, 2024 3m read

Introduction

There is a Link Procedure Wizard option within the Management Portal (System > SQL >Wizards > Link Procedure) which I had reliability issues with so I decided to use this solution instead.

Problem

You need to query an external SQL database to use the response within a namespace. This guide is assuming that you already have a working stored procedure in SSMS although you could instead use a SQL block within the operation. Stored procedures in SSMS are preferred to maintain integrity, Embedded SQL can get very confusing if you have a complicated SQL statement.

In this example, I am

2
1 512
Question Heru.H · Jun 20, 2023

When connectiong to IRIS from UBUNTU LTS 18.04, I  got this error message:

ErrorException: odbc_connect(): SQL error: [unixODBC][Iris ODBC][State : S1000][Native Code 417]

[libirisodbcur6435.so]

Access Denied, SQL state S1000 in SQLConnect 

I'm using "ODBC-2022.1.0.209.0-lnxubuntu1804x64.tar.gz" downloaded from

"https://github.com/intersystems-community/iris-driver-distribution/tree…"

and folowing guide from

https://community.intersystems.com/post/intersystems-iris-laravel-odbc

Here's my odbc.ini

[ODBC Data Sources]
TrakCare= TrakCare

[TrakCare]
Driver          =

1
0 547
Question Rebecca Johnson · Mar 29, 2024

Attempting to setup an outbound (I'm querying out, not querying the IRIS db) SQL connection. I am connecting to a PostgreSQL database, name "hl7interface".

I have setup the odbc.ini file at /usr/local/etc with the following contents:

[HL7Interface2]
Driver = PostgreSQL
Description = HL7 Interface DB
Servername = localhost
Port = 5432
Protocol = 7.4-1
#userName = postgres
#Password = <real pw here>
Database = hl7interface
ReadOnly = no
ServerType = Postgres

I have set the /etc/odbcinst.ini file with the location of the PostgreSQL driver:

[PostgreSQL]
Description=PostgreSQL driver for
6
0 320
Question Tani Frankel · Feb 1, 2024

Is it possible to authenticate an xDBC (ODBC/JDBC) connection to InterSystems IRIS via (a 3rd party) OAuth server?

For REST APIs this is possible, but could this be achieved with OAuth? 

Out-of-the-box the ODBC/JDBC Drivers don't seem to have this option, but maybe some custom code could enable this? perhaps via Delegated Authentication and some OAuth classes customization, or some other way?

Has anyone done this already and can share how it was implemented, or someone with some guideline suggestions?

0
0 216
Article David Hockenbroch · Jan 24, 2024 7m read

The ideal number of table permissions to assign for your users is zero. Permissions should be granted upon sign-in based on the application used for access. For web applications, we have a simple way of doing this by appointing application roles, matching roles, and required resources in the System Management Portal.

ODBC and JDBC connections present a different problem, however, especially when third-party applications are involved. As providers of an ERP system, our customers often wish to be able to employ various software packages to integrate with or report on their data. Many of these programs are capable of running any kind of query. Yet, letting them do that can be devastating to a customer’s data.

0
4 356
Article Anssi Kauppi · Jun 30, 2020 3m read
Many organisations implement centralised log management systems to separate and centralise the log data in order to e.g. automate threat detection (and response) and to comply with regulatory requirements. The primary systems of interest are the various user facing applications, but increasingly also other kinds of systems including integration platforms.

What comes to the data platform (not the user facing application) most of the the events of interest/required are available as predefined system audit events in audit log - out of the box.They just need to be enabled.

2
2 521
Article Mihoko Iijima · Dec 21, 2023 1m read

InterSystems FAQ rubric

If multiple InterSystems products are installed on the same system, the latest version of the InterSystems ODBC driver among the installed products will remain registered in the driver manager.

You can change to any driver by changing the registry entry below.

 Please note that running RegFiles.bat does not change the ODBC driver.

The registry entry is as follows.

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\InterSystems ODBC35 key Driver
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\InterSystems ODBC35 key Setup

The above entry records the path to the driver currently in

0
0 417
Question Alan Watts · Nov 20, 2023

I tried both the latest 32-bit and 64-bit Cache ODBC drivers, but I’m getting this “Message sequencing error” when I attempt to connect to the Cache server. Client is a Windows Server 2022.Server is a 2008 version of Cache ( or customer thinks).I’ve tried a number of things without success. If I enter invalid credentials I do get the quick “Access Denied” response. But when I have the proper IP/port/namespace/credentials I consistently get this error below. Google shows others struggle with that error, but no resolution.

0
0 404
Question Katrina E Rodenhaus · Oct 26, 2023

I am very new to IRIS. We are developing a PHP application that connects to an IRIS instance of one of our vendors. I am having trouble with a specific table. When I need to query this specific table for specific fields, I am receiving an error. However, if I change the call to get all columns (`*`), there is no error. I get 37K records returned.

Error:

PHP Fatal error:  Uncaught PDOException: SQLSTATE[SL009]: <<Unknown error>>: [unixODBC][Driver Manager]No columns were bound prior to calling SQLFetch or SQLFetchScroll (SQLFetchScroll[0] at
4
0 602
Question Alan Macdonald · Sep 21, 2023

I'm at a loss with configuring the IRIS ODBC driver (v02.10) on my Amazon Linux machine, connecting to a REMOTE IRIS backend.  It should be simplified by not requiring a DSN (the app uses a DSN-less connection and generates the connection string).  I have

2
0 976