Anbindung an eine Pervasive-Datenquelle per ODBC

Gilt ab List & Label 20

Es gibt verschiedene Möglichkeiten eine Verbindung zu einer Pervasive-Datenquelle herzustellen und
die Daten bzw. Tabellen an List & Label zu übergeben.

Möglichkeit 1: Über den combit.ListLabel??.DataProviders.OdbcConnectionDataProvider
Voraussetzung: ODBC Pervasive Treiber installiert und Datenquelle (DSN) eingerichtet.
Daten: Es wird die gesamte Datenbank angemeldet.
Einschränkung: Keine Relationen der Daten bzw. Tabellen.
Code:

            using (ListLabel ll = new ListLabel())
            {
                OdbcConnection conn = new OdbcConnection("DSN=PSQLDSN;");
                conn.Open();

                OdbcConnectionDataProvider provider = new OdbcConnectionDataProvider(conn, "\"{0}\"");
                ll.DataSource = provider;

                ll.Design(LlProject.List | LlProject.FileAlsoNew);

                conn.Close();
            }


Möglichkeit 2: Über den ODBC Pervasive Treiber (Actian Corporation)
Voraussetzung: ODBC Pervasive Treiber installiert und Datenquelle (DSN) eingerichtet.
Daten: Eigene commands (SQL Queries).
Einschränkung: Keine uns bekannten.
Code:

            using (ListLabel ll = new ListLabel())
            {
                OdbcConnection conn = new OdbcConnection("DSN=PSQLDSN;");
                conn.Open();

                OdbcCommand cmd = new OdbcCommand("select * from Tabelle1", conn);
                OdbcCommand cmd2 = new OdbcCommand("select * from Tabelle2", conn);

                DbCommandSetDataProvider provider = new DbCommandSetDataProvider();
                provider.AddCommand(cmd, "Tabelle1");
                provider.AddCommand(cmd2, "Tabelle2");

                //relationen hinzufügen
                provider.AddRelation("Tabelle12Tabelle2", "Tabelle1", "Tabelle2", "ID", "Tabelle1ID");
                ll.DataSource = provider;

                ll.Design(LlProject.List | LlProject.FileAlsoNew);

                conn.Close();
            }


Möglichkeit 3: Über den Pervasive PSQL ADO.NET Data Provider (Actian Corporation)
Voraussetzung: Pervasive.Data.SqlClient Assembly im Projekt eingebunden.
Daten: Eigene commands (SQL Queries).
Einschränkung: Keine uns bekannten.
Code:

           using (ListLabel ll = new ListLabel())
           {
                PsqlConnection conn = new PsqlConnection(@"Server Name=myServerAddress;Database Name=myDataBase;User ID=myUsername;Password = myPassword; ");
                PsqlCommand cmd = new PsqlCommand("Select * from Tabelle1");
                PsqlCommand cmd2 = new PsqlCommand("Select * from Tabelle2");

                DbCommandSetDataProvider provider = new DbCommandSetDataProvider();
                provider.AddCommand(cmd, "Tabelle1");
                provider.AddCommand(cmd2, "Tabelle2");
                
                //relationen hinzufügen
                provider.AddRelation("Tabelle12Tabelle2", "Tabelle1", "Tabelle2", "ID", "Tabelle1ID");
                ll.DataSource = provider;

                ll.Design(LlProject.List | LlProject.FileAlsoNew);

                conn.Close();
           }
IDKBTD001371 KBTD001371