Pour les développeurs d'applications externes, notamment ceux utilisant des technologies comme C#, ODBC (Open Database Connectivity) est une passerelle standardisée essentielle vers toute base de données relationnelle, y compris InterSystems IRIS. Bien qu'InterSystems propose son propre fournisseur ADO.NET natif, le pilote ODBC reste souvent la solution la plus simple pour l'intégration avec les outils et frameworks de bases de données génériques.
Voici un guide pas à pas pour connecter votre application C# à une instance IRIS à l'aide du pilote ODBC, en mettant l'accent sur la chaîne de connexion sans DSN.
Étape 1 : Installation du pilote ODBC InterSystems IRIS
Le pilote ODBC InterSystems est installé par défaut lors de l'installation d'InterSystems IRIS sur une machine Windows.
- Si IRIS est installé sur la même machine : le pilote est déjà présent.
- Si IRIS est installé sur un serveur distant : vous devez télécharger et installer le package du pilote client ODBC autonome correspondant à votre système d’exploitation (Windows, Linux ou macOS) et à son architecture (32 bits ou 64 bits) depuis le site web de WRC si vous êtes client, ou en installant les composants clients et en copiant le pilote ODBC.
Une fois installé, vous pouvez vérifier sa présence dans l’outil Administrateur de sources de données ODBC sous Windows (recherchez le pilote InterSystems IRIS ODBC35).
.png)
Étape 2 : Définir la chaîne de connexion sans DSN
Au lieu de créer un nom de source de données (DSN) préconfiguré dans l’outil d’administration Windows, nous utiliserons une chaîne de connexion sans DSN. Cette méthode simplifie le déploiement, car votre application contient toutes les informations de connexion nécessaires.
Le format spécifie le nom du pilote et les paramètres du serveur :
Driver={InterSystems IRIS ODBC35};
server=127.0.0.1;
port=1972;
database=USER;
uid=_System
Remarque :
- Le nom du pilote (InterSystems IRIS ODBC35 ou parfois InterSystems ODBC) doit correspondre exactement au nom enregistré dans votre administrateur de sources de données ODBC local.
- Le port est celui du serveur IRIS (souvent 1972).
- La base de données correspond à l’espace de noms cible dans InterSystems IRIS (par exemple, USER ou l’espace de noms personnalisé de votre application).
- L’UID par défaut est _System et le mot de passe est SYS. Modifiez toujours ces valeurs par défaut en environnement de production.
.png)
Étape 3 : Implémenter la connexion en C#
Dans votre projet C#, vous devrez référencer l’espace de noms System.Data.Odbc pour utiliser le fournisseur ODBC générique .NET.
Voici un exemple minimal en C# qui établit une connexion, exécute une requête simple sur une table par défaut et affiche le résultat.
using System.Data;
using System.Data.Odbc;
public class IrisOdbcExample
{
public static void Main()
{
// 1. Define the DSN-less connection string
string connectionString =
"DRIVER={InterSystems IRIS ODBC35};" +
"Server=127.0.0.1;Port=1972;Database=USER;" +
"UID=_System;PWD=SYS;";
// 2. Define the SQL Query (Example: querying the default Sample.Person table)
string sql = "SELECT ID, Name FROM Sample.Person WHERE ID < 5";
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("Connection successful!");
using (OdbcCommand command = new OdbcCommand(sql, connection))
using (OdbcDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"ID: {reader["ID"]}, Name: {reader["Name"]}");
}
}
}
catch (OdbcException ex)
{
// 3. Handle specific ODBC errors (e.g., wrong password, port blocked)
Console.WriteLine($"ODBC Error: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"General Error: {ex.Message}");
}
// The connection is automatically closed at
// the end of the Using block.
}
}
}
Étapes suivantes
Cette approche sans DSN offre une grande flexibilité et évite de surcharger la configuration côté client. Pour les applications C# hautes performances, vous pouvez envisager le fournisseur ADO.NET natif d'InterSystems. Toutefois, pour une intégration rapide et une compatibilité optimale avec les outils, une connexion ODBC reste une solution fiable.
❗ N'oubliez pas d'utiliser systématiquement des requêtes paramétrées en production afin de prévenir les vulnérabilités liées aux injections SQL.
.png)