Allgemeine Schemaauflistungen

Die allgemeine Schemaauflistung enthält die von den einzelnen verwalteten Anbietern für .NET Framework implementierten Schemaauflistungen. Sie können einen verwalteten Anbieter für .NET Framework abfragen, um die Liste der unterstützten Schemaauflistungen zu ermitteln. Hierzu rufen Sie die GetSchema-Methode ohne Argumente oder mit dem Schemaauflistungsnamen „MetaDataCollections“ auf. Dadurch wird DataTable mit einer Liste der unterstützten Schemaauflistungen, der Anzahl der von diesen Schemaauflistungen unterstützten Einschränkungen und der Anzahl der von diesen Schemaauflistungen verwendeten Bezeichnerteilen zurückgegeben. In diesen Auflistungen werden alle erforderlichen Spalten beschrieben. Anbieter können ggf. zusätzliche Spalten hinzufügen. So fügen beispielsweise SqlClient und OracleClient der Auflistung der Einschränkungen "ParameterName" hinzu.

Wenn ein Anbieter den Wert einer erforderlichen Spalte nicht ermitteln kann, wird NULL zurückgegeben.

Weitere Informationen zur Verwendung der GetSchema-Methoden finden Sie unter GetSchema und Schemasammlungen.

MetaDataCollections

Mithilfe dieser Schemaauflistung werden Informationen zu allen Schemaauflistungen verfügbar gemacht, die von dem verwalteten Anbieter für .NET Framework unterstützt werden, über den derzeit eine Verbindung mit der Datenbank hergestellt wird.

ColumnName DataType BESCHREIBUNG
CollectionName Zeichenfolge Hierbei handelt es sich um den Namen der Sammlung, der zum Zurückgeben der Sammlung an die GetSchema-Methode übergeben werden soll.
NumberOfRestrictions INT Die Anzahl der Einschränkungen, die für die Auflistung angegeben werden können.
NumberOfIdentifierParts INT Die Anzahl der Bestandteile im zusammengesetzten Bezeichner/Datenbank-Objektnamen. In SQL Server entspricht dies beispielsweise 3 für Tabellen und 4 für Spalten. In Oracle entspricht dies 2 für Tabellen und 3 für Spalten.

DataSourceInformation

Mithilfe dieser Schemaauflistung werden Informationen zu der Datenquelle verfügbar gemacht, mit der der verwaltete Anbieter für .NET Framework derzeit verbunden ist.

ColumnName DataType BESCHREIBUNG
CompositeIdentifierSeparatorPattern Zeichenfolge Der reguläre Ausdruck, der den Trennzeichen zum Trennen der Bestandteile in einem zusammengesetzten Bezeichner entspricht. Beispiel: „\.“ (für SQL Server) oder „@|\.“ (für Oracle).

Ein zusammengesetzter Bezeichner wird in der Regel für einen Datenbankobjektnamen verwendet, z. B. „pubs.dbo.authors“ oder „pubs@dbo.authors“.

Verwenden Sie für SQL Server den regulären Ausdruck "\.". Verwenden Sie "@|\." für OracleClient.

Verwenden Sie „Catalog_name_separator“ für ODBC.

Verwenden Sie DBLITERAL_CATALOG_SEPARATOR oder DBLITERAL_SCHEMA_SEPARATOR für OLE DB.
DataSourceProductName Zeichenfolge Der Name des Produkts, auf das durch den Anbieter zugegriffen wird, z. B. "Oracle" oder "SQLServer".
DataSourceProductVersion Zeichenfolge Gibt die Version des Produkts, auf das durch den Anbieter zugegriffen wird, im systemeigenen Format der Datenquellen an, nicht im Microsoft-Format.

In einigen Fällen sind die Werte von "DataSourceProductVersion" und "DataSourceProductVersionNormalized" identisch. Bei OLE DB und ODBC sind diese Werte immer identisch, da sie in der zugrunde liegenden systemeigenen API demselben Funktionsaufruf zugeordnet sind.
DataSourceProductVersionNormalized Zeichenfolge Eine normalisierte Version der Datenquelle, damit sie mithilfe von String.Compare() verglichen werden kann. Das Format ist für alle Versionen des Anbieters konsistent, um zu verhindern, dass Version 10 zwischen Version 1 und Version 2 einsortiert wird.

Beispielsweise verwendet der Oracle-Anbieter das Format „nn.nn.nn.nn.nn“ für die normalisierte Version. Auf diese Weise gibt beispielsweise die Oracle 8i-Datenquelle „08.01.07.04.01“ zurück. SQL Server verwendet das typische Microsoft-Format „nn.nn.nnnn“.

In einigen Fällen sind die Werte von DataSourceProductVersion und DataSourceProductVersionNormalized identisch. Bei OLE DB und ODBC sind diese Werte immer identisch, da sie in der zugrunde liegenden systemeigenen API demselben Funktionsaufruf zugeordnet sind.
GroupByBehavior GroupByBehavior Gibt die Beziehung zwischen den Spalten in einer GROUP BY-Klausel und den nicht zusammengesetzten Spalten in der Auswahlliste an.
IdentifierPattern Zeichenfolge Ein regulärer Ausdruck, der einem Bezeichner entspricht und über einen Wert verfügt, der den Bezeichner darstellt. Beispiel: "[A-Za-z0-9_#$]".
IdentifierCase IdentifierCase Gibt an, ob die Groß- und Kleinschreibung bei nicht in Anführungszeichen stehenden Bezeichnern berücksichtigt werden soll.
OrderByColumnsInSelect bool Gibt an, ob Spalten in einer ORDER BY-Klausel in der Auswahlliste vorhanden sein müssen. Der Wert "true" gibt an, dass die Spalten in der Auswahlliste vorhanden sein müssen. Der Wert "false" gibt an, dass sie nicht in der Auswahlliste vorhanden sein müssen.
ParameterMarkerFormat Zeichenfolge Eine Formatzeichenfolge, die die Formatierung des Parameters darstellt.

Wenn benannte Parameter von der Datenquelle unterstützt werden, muss sich der erste Platzhalter in dieser Zeichenfolge an der Stelle befinden, an der der Parametername formatiert wird.

Wenn die Datenquelle beispielsweise erwartet, dass Parameter benannt sind und das Präfix „:“ aufweisen, wäre dies: „:{0}“. Bei der Formatierung dieses Beispiels mit dem Parameternamen "p1" lautet die resultierende Zeichenfolge also ":p1".

Wenn die Datenquelle erwartet, dass Parameter das Präfix „@“ aufweisen, dieses jedoch bereits in den Namen enthalten ist, wäre die Zeichenfolge „{0}“. Das Ergebnis der Formatierung eines Parameters mit dem Namen „@p1“ wäre dann einfach „@p1“.

Für Datenquellen, die keine benannten Parameter und stattdessen die Verwendung des Zeichens „?“ erwarten, kann für die Formatzeichenfolge einfach „?“ angegeben werden. Dadurch wird der Parametername ignoriert. Für OLE DB wird „?“ zurückgegeben.
ParameterMarkerPattern Zeichenfolge Ein regulärer Ausdruck, der einer Parametermarkierung entspricht. Er verfügt (sofern vorhanden) über einen Wert, der dem Parameternamen entspricht.

Wenn beispielsweise benannte Parameter mit einem vorangestellten „@“ unterstützt werden, das in den Parameternamen eingeschlossen wird, lautet die Zeichenfolge „(@[A-Za-z0-9_$#]*)“.

Wenn benannte Parameter jedoch mit einem vorangestellten „:“ unterstützt werden, das nicht Teil des Parameternamens ist, lautet die Zeichenfolge „:([A-Za-z0-9_$#]*)“.

Wenn die Datenquelle keine benannten Parameter unterstützt, lautet die Zeichenfolge natürlich einfach „?“.
ParameterNameMaxLength INT Die maximale Länge eines Parameternamens in Zeichen. In Visual Studio werden im Falle der Unterstützung von Parameternamen 30 Zeichen als Mindestwert für die maximale Länge erwartet.

Wenn benannte Parameter von der Datenquelle nicht unterstützt werden, gibt diese Eigenschaft Null (0) zurück.
ParameterNamePattern Zeichenfolge Ein regulärer Ausdruck, der den gültigen Parameternamen entspricht. Je nach Datenquelle sind die Regeln bezüglich der für Parameternamen zulässigen Zeichen verschieden.

In Visual Studio wird im Falle der Unterstützung von Parameternamen erwartet, dass die Zeichen "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" die in jedem Fall unterstützte Gruppe von für Parameternamen gültigen Zeichen darstellen.
QuotedIdentifierPattern Zeichenfolge Ein regulärer Ausdruck, der einem Bezeichner in Anführungszeichen entspricht und über einen Wert verfügt, der den Bezeichner ohne Anführungszeichen darstellt. Wenn in der Datenquelle beispielsweise doppelte Anführungszeichen zum Darstellen der Bezeichner in Anführungszeichen verwendet werden, lautet die Zeichenfolge: "(([^\"]|\"\")*)".
QuotedIdentifierCase IdentifierCase Gibt an, ob die Groß- und Kleinschreibung bei Bezeichnern in Anführungszeichen berücksichtigt werden muss.
StatementSeparatorPattern Zeichenfolge Ein regulärer Ausdruck, der dem Trennzeichen für Anweisungen entspricht.
StringLiteralPattern Zeichenfolge Ein regulärer Ausdruck, der einem Zeichenfolgenliteral entspricht und über einen Wert verfügt, der das Literal darstellt. Wenn in der Datenquelle beispielsweise einfache Anführungszeichen zum Darstellen von Zeichenfolgen verwendet werden, lautet die Zeichenfolge: "('([^']|'')*')"'
SupportedJoinOperators SupportedJoinOperators Gibt an, welche SQL-Joinanweisungen von der Datenquelle unterstützt werden.

DataTypes

Mithilfe dieser Schemaauflistung werden Informationen zu den Datentypen verfügbar gemacht, die von der Datenbank unterstützt werden, mit der der verwaltete Anbieter für .NET Framework derzeit verbunden ist.

ColumnName DataType BESCHREIBUNG
TypName Zeichenfolge Der anbieterspezifische Datentypname.
ProviderDbType INT Hierbei handelt es sich um den anbieterspezifischen Typwert, der beim Angeben des Typs eines Parameters verwendet werden sollte, Beispiel: SqlDbType.Money oder OracleType.Blob.
ColumnSize long Die Länge einer nicht numerischen Spalte oder eines nicht numerischen Parameters bezieht sich entweder auf die maximale oder auf die für diesen Typ vom Anbieter definierte Länge.

Bei Zeichendaten ist dies die maximale oder definierte Länge in Einheiten, entsprechend der Definition in der Datenquelle. In Oracle wird eine Länge und anschließend die tatsächliche Speichergröße für einige Zeichendatentypen angegeben. Dadurch wird für Oracle nur die Länge in Einheiten definiert.

Bei Datum/Uhrzeit-Datentypen ist dies die Länge der Zeichenfolgendarstellung (dabei wird von der maximal zulässigen Genauigkeit der Sekundenbruchteil-Komponente ausgegangen).

Wenn der Datentyp numerisch ist, ist dies die obere Grenze der maximalen Genauigkeit des Datentyps.
CreateFormat Zeichenfolge Formatzeichenfolge, die darstellt, wie diese Spalte einer Datendefinitionsanweisung (z. B. CREATE TABLE) hinzugefügt wird. Jedes Element im CreateParameter-Array muss durch eine "Parametermarkierung" in der Formatzeichenfolge dargestellt werden.

Für den SQL-Datentyp DECIMAL ist eine Angabe zur Genauigkeit und zur Dezimalstellenanzahl erforderlich. In diesem Fall lautet die Formatzeichenfolge „DECIMAL({0},{1})“.
CreateParameters Zeichenfolge Die Erstellungsparameter, die beim Erstellen einer Spalte dieses Datentyps angegeben werden müssen. Die Erstellungsparameter sind in der Zeichenfolge durch ein Komma getrennt in der Reihenfolge aufgelistet, in der sie bereitgestellt werden sollen.

Für den SQL-Datentyp DECIMAL ist eine Angabe zur Genauigkeit und zur Dezimalstellenanzahl erforderlich. In diesem Fall müssen die Erstellungsparameter die Zeichenfolge "Genauigkeit, Dezimalstellenanzahl" enthalten.

In einem Textbefehl zum Erstellen einer DECIMAL-Spalte mit einer Genauigkeit von 10 und einer Dezimalstellenanzahl von 2 lautet der Wert der CreateFormat-Spalte möglicherweise „DECIMAL({0},{1})“ und die vollständige Typspezifikation wäre dann „DECIMAL(10,2)“.
DataType Zeichenfolge Der Name des .NET Framework-Typs des Datentyps.
IsAutoincrementable bool true – Die Werte dieses Datentyps können automatisch erhöht werden.

false – Die Werte dieses Datentyps können nicht automatisch erhöht werden.

Beachten Sie, dass auf diese Weise lediglich angegeben wird, ob eine Spalte dieses Datentyps automatisch erhöht werden kann, und nicht, dass alle Spalten dieses Typs automatisch erhöht werden.
IsBestMatch bool true – Der Datentyp stellt die höchste Übereinstimmung zwischen allen Datentypen im Datenspeicher und dem durch den Wert in der DataType-Spalte angegebenen .NET Framework-Datentyp dar.

false – Der Datentyp stellt nicht die höchste Übereinstimmung dar.

Für jede Gruppe von Zeilen, in der der Wert der DataType-Spalte derselbe ist, wird die IsBestMatch-Spalte nur in einer Zeile auf "true" festgelegt.
IsCaseSensitive bool true – Bei dem Datentyp handelt es sich um einen Zeichentyp, und die Groß- und Kleinschreibung muss berücksichtigt werden.

true – Bei dem Datentyp handelt es sich nicht um einen Zeichentyp, und die Groß- und Kleinschreibung muss nicht berücksichtigt werden.
IsFixedLength bool true – Die von der DLL (Data Definition Language) erstellten Spalten dieses Datentyps weisen eine feste Länge auf.

false – Die von der DLL (Data Definition Language) erstellten Spalten dieses Datentyps weisen eine variable Länge auf.

DBNull.Value – Es ist nicht bekannt, ob dieses Feld vom Anbieter einer Spalte mit fester oder variabler Länge zugeordnet wird.
IsFixedPrecisionScale bool true – Der Datentyp verfügt über eine feste Genauigkeit und Dezimalstellenanzahl.

false – Der Datentyp verfügt nicht über eine feste Genauigkeit und Dezimalstellenanzahl.
IsLong bool true – Der Datentyp enthält sehr lange Daten. Die Definition hierfür ist anbieterspezifisch.

false – Der Datentyp enthält keine sehr langen Daten.
IsNullable bool true – Der Datentyp lässt NULL-Werte zu.

false – Der Datentyp lässt keine NULL-Werte zu.

DBNull.Value – Es ist nicht bekannt, ob der Datentyp NULL-Werte zulässt.
IsSearchable bool true – Der Datentyp kann in WHERE-Klauseln mit beliebigen Operatoren außer dem LIKE-Prädikat verwendet werden.

FALSE – Der Datentyp kann nicht in WHERE-Klauseln mit beliebigen Operatoren außer dem LIKE-Prädikat verwendet werden.
IsSearchableWithLike bool TRUE – Der Datentyp kann mit dem LIKE-Prädikat verwendet werden.

FALSE – Der Datentyp kann nicht mit dem LIKE-Prädikat verwendet werden.
IsUnsigned bool true – Der Datentyp hat kein Vorzeichen.

false – Der Datentyp hat ein Vorzeichen.

DBNull.Value – Nicht zutreffend für den Datentyp.
MaximumScale short Wenn es sich beim Typindikator um einen numerischen Typ handelt, ist dies die maximal zulässige Anzahl von Ziffern rechts vom Dezimaltrennzeichen. Andernfalls ist dies DBNull.Value.
MinimumScale short Wenn es sich beim Typindikator um einen numerischen Typ handelt, ist dies die minimal zulässige Anzahl von Ziffern rechts vom Dezimaltrennzeichen. Andernfalls ist dies DBNull.Value.
IsConcurrencyType bool true – Der Datentyp wird immer dann von der Datenbank aktualisiert, wenn die Zeile geändert wird und sich der Wert der Spalte von allen vorherigen Werten unterscheidet.

false – Der Datentyp wird von der Datenbank nicht bei jeder Änderung der Zeile aktualisiert.

DBNull.Value – Die Datenbank unterstützt diese Art von Datentyp nicht.
IsLiteralSupported bool true – Der Datentyp kann als Literal ausgedrückt werden.

true – Der Datentyp kann nicht als Literal ausgedrückt werden.
LiteralPrefix Zeichenfolge Das auf ein angegebenes Literal angewendete Präfix.
LiteralSuffix Zeichenfolge Das auf ein angegebenes Literal angewendete Suffix.
NativeDataType String Bei "NativeDataType" handelt es sich um eine OLE DB-spezifische Spalte zum Verfügbarmachen des OLE DB-Typs des Datentyps.

Beschränkungen

Mithilfe dieser Schemaauflistung werden Informationen zu den Einschränkungen verfügbar gemacht, die vom verwalteten Anbieter für .NET Framework unterstützt werden, über den derzeit eine Verbindung mit der Datenbank hergestellt wird.

ColumnName DataType BESCHREIBUNG
CollectionName Zeichenfolge Der Name der Auflistung, auf die diese Einschränkungen angewendet werden.
RestrictionName Zeichenfolge Der Name der Einschränkung in der Auflistung.
RestrictionDefault Zeichenfolge Ignoriert.
RestrictionNumber INT Die tatsächliche Position in den Auflistungseinschränkungen, an der sich diese bestimmte Einschränkung befindet.

ReservedWords

Mithilfe dieser Schemaauflistung werden Informationen zu den Wörtern verfügbar gemacht, die von der Datenbank reserviert sind, mit der der verwaltete Anbieter für .NET Framework derzeit verbunden ist.

ColumnName DataType BESCHREIBUNG
ReservedWord Zeichenfolge Hierbei handelt es sich um ein anbieterspezifisches reserviertes Wort.

Weitere Informationen: