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:
- die API-Funktionen QUSRJOBI oder QDBRTVSN in eine OleDbFunktion einbauen.
=> dies wäre mein Favorit - 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. - in meiner bestehenden Klasse die Funktionen aus dem Start-CL nachbauen.
- Oder jemand von euch kennt noch einen vierten Weg.
Bookmarks