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. |