Vielleicht verwende ich die falsche Funktion:

Code:
this.as400Connection.IDB2Connection.Open();
DataTable dt = this.as400Connection.IDB2Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, "TABLE", null });
dataGridView1.DataSource = dt;
this.as400Connection.IDB2Connection.Close();
Bringt mir in einer Tabelle zurück:
Schema
Column
INTDTA COL1
INTDTA COL2
INTDTA COL3
TESTDTA COL1
TESTDTA COL2
TESTDTA COL3
TESTDTA COL4
TESTDTA COL5
OLDDTA COL1
OLDDTA COL2
OLDDTA COL3

um nur die Spaltenbezeichnungen aus der ProdUmgebung zu ermitteln müsste ich folgenden Aufruf tätigen:
Code:
this.as400Connection.IDB2Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, "INTDTA", "TABLE", null });
um nur die Spaltenbezeichnungen aus der DevUmgebung zu ermitteln müsste ich folgenden Aufruf tätigen:
Code:
this.as400Connection.IDB2Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, "TESTDTA", "TABLE", null });
da ich aber die aktuelle Bibliothek nicht weiß, habe ich auch ein Aufruf mit
Code:
this.as400Connection.IDB2Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, "*LIBL", "TABLE", null });
oder
Code:
this.as400Connection.IDB2Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, "*CURLIB", "TABLE", null });
versucht, dies bringt mir jedoch gar kein Ergebnis.

Aktuell sehe ich für mich vier Varianten:
  1. die API-Funktionen QUSRJOBI oder QDBRTVSN in eine OleDbFunktion einbauen.
    => dies wäre mein Favorit
  2. in meiner bestehende Klasse die cwbx.dll einbinden und die APIs verwenden.
    => wobei sich hier für die Schwierigkeit ergibt, dass ich trotzdem meine Connection via OleDb aufbauen möchte und nun über eine zusätzliche cwbx-Verbindung die Informationen aus der OleDbConnection abrufen muss.
  3. in meiner bestehenden Klasse die Funktionen aus dem Start-CL nachbauen.
  4. Oder jemand von euch kennt noch einen vierten Weg.