DB2Methode DataReader.GetSchemaTable
Gibt eine DataTable zurück, die die Spaltenmetadaten von DB2DataReaderbeschreibt.
- Namensbereich:
IBM.Data.DB2- Aufbau:
IBM.Data.DB2(inIBM.Data.DB2.dll)
Syntax
[Visual Basic]
Public Function GetSchemaTable() As DataTable
[C#]
public DataTable GetSchemaTable();
[C++]
public: DataTable* GetSchemaTable();
[JScript]
public function GetSchemaTable() : DataTable;
Rückgabewert
Eine DataTable, die die Metadaten der Spalte beschreibt.
Ausnahmen
| Typ der Ausnahmebedingung | Bedingung |
|---|---|
| InvalidOperationException | DB2®DataReader wird geschlossen. |
Anmerkungen
Die Methode GetSchemaTable gibt Metadaten zu jeder Spalte in der folgenden Reihenfolge zurück.
| Feldname | Beschreibung |
|---|---|
| ColumnName | Der Name der Spalte, falls er ermittelt werden kann. Der Name ist möglicherweise nicht eindeutig. Der Name gibt immer den zuletzt gültigen Namen der Spalte in der aktuellen Sicht oder im aktuellen Befehlstext wieder. Wenn der Spaltenname nicht ermittelt werden kann, wird ein Nullwert zurückgegeben. |
| ColumnOrdinal | Die Ordinalzahl der Spalte. Dieser Wert ist null für die Lesezeichenspalte der Zeile (falls vorhanden). Andere Spalten werden beginnend mit 1 nummeriert. Dieses Feld darf keinen Nullwert enthalten. |
| ColumnSize | Die maximal mögliche Länge für einen Wert in der Spalte. Bei Spalten, die einen Datentyp mit fester Länge verwenden, ist dieser Wert die Größe des Datentyps. |
| NumericPrecision | Wenn der Db2® -Datentyp ein numerischer Datentyp ist, die maximale Genauigkeit der Spalte; andernfalls null. |
| NumericScale | Wenn der DB2-Datentyp ein Dezimaldatentyp ist, ist dies die Anzahl Stellen rechts vom Dezimalzeichen, andernfalls null. |
| DataType | Ein Datentyp, der dem DB2-Datentyp zugeordnet wird. |
| ProviderType | Die Aufzählung des Typs Db2. |
| IsLong | true, wenn die Spalte ein großes Binärobjekt (Binary
Large Object, BLOB) mit sehr langen Daten enthält. |
| AllowDBNull | true, wenn der Anwender die Spalte auf einen
Nullwert setzen kann, oder wenn der Treiber nicht ermitteln kann, ob der Anwender die Spalte auf
einen Nullwert setzen kann, sonst false. Eine Spalte kann einen
Nullwert enthalten, selbst wenn sie nicht auf einen Nullwert gesetzt werden kann. |
| IsReadOnly | true, wenn die Spalte nicht modifiziert werden kann, sonst
false. |
| IsRowVersion | Wird festgelegt, wenn die Spalte eine persistente Zeilenkennung enthält, in die nicht geschrieben werden kann. |
| IsUnique | true oder false, gemäß folgender Definition:
|
| IsKey | true oder false, gemäß folgender Definition:
|
| IsAutoIncrement | true, wenn die Spalte Werte für neue Zeilen in
festgelegten Inkrementen zuordnet, sonst false. Der Standardwert für diese
Spalte ist false. |
| BaseSchemaName | Der Name des Schemas in der Datenbank, das die Spalte enthält, wenn der Name des Basisschemas ermittelt werden kann. Der Wert von 'BaseSchemaName' ist ein Nullwert, wenn der Name des Basisschemas nicht ermittelt werden kann. Der Standardwert für diese Spalte ist ein Nullwert. |
| BaseCatalogName | Der Name des Katalogs in der Datenbank, der die Spalte enthält, wenn der Name des Katalogs ermittelt werden kann. Der Wert von 'BaseCatalogName' ist ein Nullwert, wenn der Name des Basiskatalogs nicht ermittelt werden kann. Der Standardwert für diese Spalte ist ein Nullwert. |
| BaseTableName | Der Name der Tabelle oder Sicht in der Datenbank, die die Spalte enthält, wenn der Name der Tabelle ermittelt werden kann. Der Wert von 'BaseTableName' ist ein Nullwert, wenn der Name der Basistabelle nicht ermittelt werden kann. Der Standardwert für diese Spalte ist ein Nullwert. |
| BaseColumnName | Der Name der Spalte in der Datenbank, falls möglich. Dieser Name kann von dem in der Spalte 'ColumName' zurückgegebenen Spaltennamen abweichen, wenn Sie einen Aliasnamen verwendet haben. Der Wert der Spalte 'BaseColumnName' ist ein Nullwert, wenn der Name der Basisspalte nicht ermittelt werden kann, oder wenn die Spalte für die Zeilengruppe zwar von einer Spalte in der Datenbank abgeleitet, jedoch nicht mit ihr identisch ist. Der Standardwert für die Spalte 'BaseColumnName' ist ein Nullwert. |
| modulename |
|
Für jede Spalte der Ergebnismenge wird eine Zeile zurückgegeben.
DB2CommandBuilder muss die Primärschlüssel einer Tabelle korrekt identifizieren, um ordnungsgemäß zu funktionieren. Wenn die Spalte 'BaseTableName' nicht für jede Spalte in den Ergebnissen einer Abfrage zurückgegeben wird, versucht IBM® Data Server Provider for .NET, die SQL-Anweisung zu parsen, um die an der Abfrage beteiligten Tabellennamen zu finden. Dieser Ansatz funktioniert für UPDATE-, INSERT-, DELETE- und einfache SELECT-Anweisungen, jedoch nicht für gespeicherte Prozeduren und auf Joins basierende SELECT-Anweisungen. Wenn einige oder alle der Schemainformationen in einer Tabelle fehlen, funktioniert der DB2CommandBuilder nicht ordnungsgemäß, da er nicht über genügend Schemainformationen verfügt, um automatisch die richtigen INSERT-, UPDATE-oder DELETE-Anweisungen zu generieren.