Verbindung zu IBM Informix-Datenbanken herstellen

In der Vergangenheit hat IBM einen eigenen ADO.NET-Provider für Informix bereitgestellt. Dieser ist durch den DB2-Provider ersetzt worden. Details dazu finden sich in diesem Artikel bei IBM:

Differences between .NET Providers - IBM Documentation

Für neue Entwicklungen wird der IBM Data Server .NET-Provider empfohlen, der auf NuGet hier zu finden ist: NuGet Gallery | IBM.Data.DB2.Core. Dieser verwendet das aktuelle DRDA-Protokoll.

Der Provider arbeitet gleichermaßen mit DB2 und Informix-Datenbanken. Um Daten aus Informix z. B. mit dem DbCommandSetDataProvider zu verwenden, kann wie folgt vorgegangen werden:

IDbCommand customers = connection.CreateCommand();
customers.CommandText  = "Select * from \"Customers\"";
IDbCommand orders = connection.CreateCommand();
orders.CommandText  = "Select * from \"Orders\"";

DbCommandSetDataProvider provider = new DbCommandSetDataProvider();
provider.AddCommand(customers, "Customers", "\"{0}\"", "?");
provider.AddCommand(orders, "Orders",  "\"{0}\"", "?");
provider.AddRelation("Customers2Orders", "Customers", "Orders", "CustomerID", "CustomerID");

LL.DataSource = provider;
LL.Design();

Die Parameter bei AddCommand bilden dabei die Syntax für die Einrahmung von Spaltennamen und die Angabe von SQL-Parametern für Informix-Datenbanken ab.