7 Followers · 187 Posts

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

Learn more.

Question Katrina E Rodenhaus · Sep 14, 2023

I am very new to IRIS. We are developing a PHP application that connects to an IRIS instance of one of our vendors. This works well most of the time, but when I query a table to get data from particular fields that contain long text strings, it returns `NULL`. These fields are all `VARCHAR(30000)`.

I tried using the `$extract` functionality in the IRIS documentation, but that made no difference. I also tried setting the PHP setting `odbc.defaultlrl` to both 31K and 0. Neither resolved the issue.

I also looked through the internet to try and find a similar issue, but wasn't able to find anything

I

1
0 368
Question Carlos Alberto Penedo Salheb Junior · Aug 21, 2023

Hi,

We're using a database gateway from IRIS to Oracle using ODBC. It has been occurring a character set issue that invalidate special characters. 

Oracle support has found data type missmatch in ODBC debug while transfering data between the databases. 

ODBC was download from official website.

Is there any Intersystems contact to send it to check whether there is a ODBC issue? I hasn't found any directy contact in Intersystems in website. 

2
0 205
Question Alan Macdonald · Aug 10, 2023

We are updating a C# module which creates consumes an OdbcConnection from System.Data.Odbc.  This module used to create a DSN-less connection through the InterSystems Cache driver, and we are updating it to call the IRIS ODBC35 driver following migration of the target database.

The Cache connection was formed formatted as follows:

"DRIVER={InterSystems ODBC};SERVER=[server_address];DATABASE=[cache_namespace];UID=$uid$;PWD=$pwd$;"

When trying to simply update the connection string to replace the DRIVER value to "{InterSystems IRIS ODBC35}" we get the following error:
 

Access Denied ERROR [HY000]
4
1 1247
Question Jude Mukkadayil · Jul 14, 2023

Hi,

     I am trying to load all the data tables from one iris server to a client server but some of the tables data failing to load all the time. But I can load around 100 tables successfully  but 8 to 10 tables are failing all the time. I made an IRIS odbc connection using odbc driver to load the data from tables.

Also I can see read server loop error message on the iris server side as the same time the table loading fails.

Please find the screen shot attached which shows the error on client server.

 

Can anyone provide me an advise how to fix the issue.

Thanks

Jude

15
0 1433
Question Blake Hernandez · Jul 14, 2023

Hi all, 

We are doing a SQL server upgrade to SQL server v.15 from a legacy server which had v.10 . I have our Cache server as a linked server int order to pull data from our system. When building out the ROWSPEC, I have my fields typed as %String with various lengths with one field having a max length of 15000. The SQL server is trying to interpret this as a text data type instead of varchar(n). Text is a depracated data type since SQL server 2008. The error below is produced when trying to query from this view

OLE DB provider "MSDASQL" for linked server "SQ_PROD_USER" returned message

1
0 427
Question Zaheer Uddin · Dec 18, 2018

I am unable to connect to InterSystems ODBC client. I am seeing the following error:

[Cache ODBC][State : S1000][Native Code 417] Access denied.

$cnx = new PDO("odbc:Driver={InterSystems ODBC};Server=<IP>;Uid=<id>;Pwd=<password>;");

Am i doing anything wrong?

Although, I can successfully connect and retrieve data in MS Excel using ODBC connection where I have configured my DSN and all

2
0 2439
Question Minoru Horita · May 19, 2023

I have a problem with connecting to IRIS via ODBC on Apple Silicon.

I installed unixodbc with brew, and downloaded ODBC-2023.1.0.229.0-macos.tar.gz from the community github repo.

After setting up odbc.ini so that libirisodbcur6435.so that was just downloaded is used as the driver,  isql fails as follows:

$ isql -v sampleodbc
[08S01][unixODBC][Iris ODBC][State : 08S01][Native Code 459]
[libirisodbcur6435.so]
Connection via irisconnect failed:
getaddrinfo(, , 0, 0) failed in s_TCPConnect, reason = nodename nor servname provided, or not known.
 
[ISQL]ERROR: Could not SQLConnect

Can anyone

4
0 786
Question Stuart Goodrick · May 16, 2023

I'm trying to extract data from an IRIS database into SQL server with SSIS using the ODBC driver: InterSystems ODBC35 (ODBC-2023.1.0.229.0-win_x64.exe)

I have Unicode turned off in the ODBC settings. 
I'm getting strange results - with some tables the SSIS ODBC connector will work but the ADO.net connector - using the same ODBC driver will. For other tables it's the other way round. The ADO.net sees the data as unicode and won't allow me to insert it into a non unicode table but ODBC will be fine.

In some cases I'm getting data that just looks screwed up  

Anyone had similar issues?

1
0 354
Article Mauro Aguirre · May 11, 2023 13m read

Several steps should be done in order to secure the connection through xDBC clients to an IRIS Server instance using TLS. Most of the information can be obtained from the documentation about TLS on IRIS here, about configuring the security layer for encrypted connections. In the next paragraphs we will cover an step-by-step guide on how to configure and test the connection using SQL Clients apps using ODBC and JDBC.

You can download the drivers from InterSystems IRIS Driver Packages

Configuring IRIS SuperServer to use TLS

IRIS Documentation on this link

Before starting with the client

0
2 1225
Question water huang · Apr 23, 2023

 i use %SQLGatewayConnection to insert data to mysql from xml,when if the value`s ascii of any field in the sql equal to 57659 ,

ClassMethod Execute(sql, conn, Output msg) As%Status
{
    s$zt="Err"
    s msg=""
    k hstmt
    set sc=conn.AllocateStatement(.hstmt)
    set sc=conn.PrepareW(hstmt,sql) 
    
  if$$$ISERR(sc) quit sc
  //Execute statement
  set sc=conn.Execute(hstmt)
  if$$$ISERR(sc) 
  {
      k err
   Set xsc=conn.GetErrorList(hstmt,.err)
      set sc=conn.DropStatement(hstmt)
   ;Zwrite err
   Quit err
  }
    set sc=conn.DropStatement(hstmt)
    q$$$OK
1
0 283
Question Jack Boulton · Mar 16, 2023

Hi all,

I'm trying to use LOAD DATA to insert 11k (11,377) rows of data. LOAD BULK DATA is not available for the version of IRIS I am using.

After calling LOAD DATA it says only 5,500 rows has been inserted. The LOAD DATA docs says any error rows are skipped and a count of skipped rows can be found in %SQL_Diag.Result however there are no results here. There are no errors in the xDBC error log either.

Why have over half the rows been skipped?

3
0 472
Question Michoel Reach · Mar 28, 2023

In the documentation  Data Types | Caché SQL Reference | Caché & Ensemble 2018.1.4 – 2018.1.8 (intersystems.com)

it says that "by default, Caché establishes a system-wide ODBC VARCHAR maximum length of 4096; this ODBC maximum length is configurable"

Per instructions, I went to SMP -> System -> Configuration -> General SQL Settings, where most of the fields from  $SYSTEM.SQL.CurrentSettings()

appear. That one does not.

How does one change it, and can it be increased?

Thanks!

[Cross-posted from https://groups.google.com/g/intersystems-public-cache/c/eRFeORb_sb0]

2
0 441
Article Heloisa Paiva · Mar 10, 2023 3m read

Introduction

This article is intended to be a simple tutorial on how to create ODBC connections and working with them, since I found starting with them a little bit confused, but I had amazing people to take my hand and walk me through it, and I think everyone deserves that kind of help too.
I'm going to divide each little part in sections, so feel free to jump to the one you feel the need to, although I recommend reading everything.
I'm going to use the sample data created in a previous article, Quick sample database tutorial: Samples.PersistentData, with the properties Name and Age.

Creating

0
2 1097
Question Robson Tenorio · Jan 26, 2023

I already have a working setup with:

- Ubuntu 21.10
- Unixodbc 2.3.6
- ODBC-2018.1.5.659.0-lnxubuntux64
- libcacheodbcur64.so

I have tried to update to:

- Ubuntu 22.04
- Unixodbc 2.3.9

But, i am getting  "SQLDriverConnect: 0 [unixODBC][Driver Manager]Driver does not support the requested version".

So, I have tried to switch to:

-  libcacheodbcur6435.so
- ODBC-2018.1.7.721.0-lnxubuntux64.tar

But i am getting same error. Please, could someone help me?

1
0 420
Question Robson Tenorio · Jan 26, 2023

I already have a working setup with:

- Ubuntu 21.10
- Unixodbc 2.3.6
- ODBC-2018.1.5.659.0-lnxubuntux64
- libcacheodbcur64.so

I have tried to update to:

- Ubuntu 22.04
- Unixodbc 2.3.9
 

But, i am getting  "SQLDriverConnect: 0 [unixODBC][Driver Manager]Driver does not support the requested version".

So, I have tried to switch to:

-  libcacheodbcur6435.so
- ODBC-2018.1.7.721.0-lnxubuntux64.tar


But i am getting same error. Please, could someone help me?

1
0 343
Question Chenyang Fu · Jan 9, 2023

Product version

I try the 2021.2 2020.2 , they own have this issus

For this issus i have submit to dotnet , hope they can solve this or find the reson for this and solve this.

platform

ubuntu using unixOdbc dirver

Describe the problem you're observing:

using dotnet nuget System.Data.Odbc to connet the iris for some sql will have bug on linux,but it is ok on windows
and that driver is ok for other db type .
I have put a issue on dotnet also (dotnet/runtime#80015)
Is anyone can have a look for that

2
0 298
Question Thanongsak Chamung · Aug 31, 2022

Hi 

I try to create an ODBC connection to MariaDB using SQL Gateway Connection. It works when testing with isql command at OS level but in the SQL Gateway Connection test is failed as this message :

Connection failed.
SQLState: () NativeError: [2002] Message:

And another way try to testing with this command

d$SYSTEM.SQLGateway.TestConnection("MariaDBodbc")

I got the error message look like this :

INST01:USER>d$SYSTEM.SQLGateway.TestConnection("MariaDBodbc")

Connection failed
  SQLState: () NativeError: [2002] Message:

INST01:USER>zw%objlasterror%objlasterror="0 "_$lb($lb(5023,"
2
1 522
Announcement Jean Dormehl · Dec 6, 2018

Hi Community

I have created a simple package that allows the use of Cache with the Laravel Framework.

From my initial testing everything seems to be operating smoothly but I would like to appeal to the PHP users in the community to help me improve this package.

For those of you out there who have time and would be interested in this, please visit the repo at https://github.com/jeandormehl/laracache

Thanks in advance

8
3 1312
Question Erol Gurcinar · Jul 24, 2022

Hi team,

I'll start with an apology as I am trying to wrap my head around the architecture of how InterSystems IRIS database management works. I am attempting to connect to the platform remotely through say a JDBC or ODBC connection in order to run queries, searches (through SQL statements) on my laptop and was trying to understand whether this would be possible? It is possible to setup an inbound client connection and wanted to better understand the architecture of how the database association works for IRIS database management. Does it use it's own internal SQL database or are we able to connect to our own database and which databases are certified to run against the platform?

2
0 468
Question Thembelani Mlalazi · Jul 19, 2022

I am calling a stored procedure over an ODBC connection and every time I call it there are several warnings written to the log event {Found no Parameter 1 (used as 1) for query}.I seem to be getting this on every query executed and that seems to happen a number of times the query parameters are per query and its filling up my disc.

1) Is there a way to suppress these warnings as the query seems to be executed and data written to the database?

2) Is there a way to pass Null values to the procedure and not generate these warnings as I suspect there are caused by the Null values expected to

1
0 331
Question Richard Housham · Jul 16, 2018

Hi I've got a service setup to query a sql server via ODBC.

I've got all the parameters etc setup and everything is ok

My Query is

SELECT TOP 1
CI.ClientID, 
Gender, 
DateOfBirth, 
MaritalStatus AS MartialStatusCode,
(SELECT CodeDescription FROM GenMaritalStatus WHERE Code =  MaritalStatus) AS Martial,
Ethnicity AS EnthnicityCode,
(SELECT CodeDescription FROM GenEthnicity WHERE Code = Ethnicity) AS Ethnicity,
Nationality AS NationalityCode,
(SELECT CodeDescription FROM GenNationality WHERE Code = Nationality) AS Nationality,
DateOfDeath,
CN.Surname AS Surname,
 ISNULL (CN.GivenName1, '')
 + ISNULL(

11
1 2055
Question David Hockenbroch · Jun 8, 2022

Is there a way for us to restrict user's ODBC permissions based on what program they're running on a client?

For example, we have some older Windows apps (.exe) that are a regular part of our software package which require the user to be able to select, insert, update, and delete. Some of our users are also using other third-party apps to connect (mostly reporting tools) but we only want them to be able to select unless we've approved the exe. Is there a way to do that?

These are not applications that were developed using CacheDirect.

6
0 433