Typowe kolekcje schematów
Typowe kolekcje schematów to kolekcje schematów implementowane przez każdego z dostawców zarządzanych programu .NET Framework. Możesz wysłać zapytanie do dostawcy zarządzanego platformy .NET Framework, aby określić listę obsługiwanych kolekcji schematów, wywołując metodę GetSchema bez argumentów lub z nazwą kolekcji schematów "MetaDataCollections". Spowoduje to zwrócenie DataTable obiektu z listą obsługiwanych kolekcji schematów, liczbą ograniczeń, które obsługują, oraz liczbą używanych przez nich części identyfikatorów. Te kolekcje opisują wszystkie wymagane kolumny. Jeśli chcą, dostawcy mogą dodawać dodatkowe kolumny. Na przykład SqlClient
i OracleClient
dodaj parametr Nazwa_parametru do kolekcji ograniczeń.
Jeśli dostawca nie może określić wartości wymaganej kolumny, zwróci wartość null.
Aby uzyskać więcej informacji na temat używania metod GetSchema, zobacz GetSchema i Kolekcje schematów.
MetaDataCollections
Ta kolekcja schematów udostępnia informacje o wszystkich kolekcjach schematów obsługiwanych przez dostawcę zarządzanego programu .NET Framework, który jest obecnie używany do nawiązywania połączenia z bazą danych.
ColumnName | DataType | opis |
---|---|---|
CollectionName | string | Nazwa kolekcji do przekazania do metody GetSchema w celu zwrócenia kolekcji. |
NumberOfRestrictions | int | Liczba ograniczeń, które można określić dla kolekcji. |
NumberOfIdentifierParts | int | Liczba części w nazwie obiektu złożonego identyfikatora/bazy danych. Na przykład w programie SQL Server będzie to wartość 3 dla tabel i 4 kolumn. W programie Oracle byłoby to 2 dla tabel i 3 dla kolumn. |
Datasourceinformation
Ta kolekcja schematów udostępnia informacje o źródle danych, z którymi jest obecnie połączony dostawca zarządzany programu .NET Framework.
ColumnName | DataType | opis |
---|---|---|
CompositeIdentifierSeparatorPattern | string | Wyrażenie regularne zgodne z separatorami złożonymi w identyfikatorze złożonym. Na przykład "\". (dla programu SQL Server) lub "@|\". (dla Oracle). Identyfikator złożony jest zwykle używany dla nazwy obiektu bazy danych, na przykład pubs.dbo.authors lub pubs@dbo.authors. W przypadku programu SQL Server użyj wyrażenia regularnego "\.". W przypadku programu OracleClient użyj polecenia "@|\". W przypadku funkcji ODBC użyj Catalog_name_separator. W przypadku ole DB użyj DBLITERAL_CATALOG_SEPARATOR lub DBLITERAL_SCHEMA_SEPARATOR. |
DataSourceProductName | string | Nazwa produktu, do których uzyskuje dostęp dostawca, na przykład "Oracle" lub "SQLServer". |
DataSourceProductVersion | string | Wskazuje wersję produktu dostępną przez dostawcę w formacie natywnym źródeł danych, a nie w formacie firmy Microsoft. W niektórych przypadkach Wartości DataSourceProductVersion i DataSourceProductVersionNormalized będą takie same. W przypadku baz danych OLE DB i ODBC będą one zawsze takie same, jak są mapowane na to samo wywołanie funkcji w podstawowym natywnym interfejsie API. |
DataSourceProductVersionNormalized | string | Znormalizowana wersja źródła danych, tak aby można ją było porównać z wartością String.Compare() . Format jest spójny dla wszystkich wersji dostawcy, aby uniemożliwić sortowanie wersji 10 między wersją 1 a wersją 2.Na przykład dostawca Oracle używa formatu "nn.nn.nn.nn.nn".nn" dla znormalizowanej wersji, co powoduje zwrócenie źródła danych Oracle 8i "08.01.07.04.01". Program SQL Server używa typowego formatu "nn.nn.nnnn". W niektórych przypadkach wartości DataSourceProductVersion i DataSourceProductVersionNormalized będą takie same. W przypadku ole DB i ODBC zawsze będą one takie same, jak są mapowane na to samo wywołanie funkcji w bazowym natywnym interfejsie API. |
GroupByBehavior | GroupByBehavior | Określa relację między kolumnami w klauzuli GROUP BY i niegregowanymi kolumnami na liście wyboru. |
IdentyfikatorPattern | string | Wyrażenie regularne, które pasuje do identyfikatora i ma wartość dopasowania identyfikatora. Na przykład "[A-Za-z0-9_#$]". |
Identyfikator —casa | IdentifierCase | Wskazuje, czy identyfikatory inne niż cytowane są traktowane jako uwzględniane wielkość liter, czy nie. |
OrderByColumnsInSelect | bool | Określa, czy kolumny w klauzuli ORDER BY muszą znajdować się na liście wyboru. Wartość true wskazuje, że muszą znajdować się na liście wyboru. Wartość false wskazuje, że nie muszą znajdować się na liście wyboru. |
ParametrMarkerFormat | string | Ciąg formatu reprezentujący sposób formatowania parametru. Jeśli nazwane parametry są obsługiwane przez źródło danych, pierwszy symbol zastępczy w tym ciągu powinien mieć miejsce formatowania nazwy parametru. Jeśli na przykład źródło danych oczekuje, że parametry będą nazwane i poprzedzone prefiksem ":", będzie to ":{0}". Podczas formatowania tego parametru o nazwie "p1" wynikowy ciąg to ":p 1". Jeśli źródło danych oczekuje, że parametry zostaną poprzedzone prefiksem "@", ale nazwy już zawierają je, będzie to "{0}", a wynikiem formatowania parametru o nazwie "@p1" będzie po prostu "@p1". W przypadku źródeł danych, które nie oczekują nazwanych parametrów i oczekują użycia znaku "?", można określić ciąg formatu jako po prostu "?", co zignoruje nazwę parametru. W przypadku bazy danych OLE zwracamy wartość "?". |
ParametrMarkerPattern | string | Wyrażenie regularne, które pasuje do znacznika parametru. Będzie mieć wartość dopasowania nazwy parametru, jeśli istnieje. Jeśli na przykład nazwane parametry są obsługiwane z znakiem "@", który zostanie uwzględniony w nazwie parametru, będzie to: "(@[A-Za-z0-9_$#]*)". Jeśli jednak nazwane parametry są obsługiwane z znakiem ":" jako znakiem potencjalnego klienta i nie jest częścią nazwy parametru, będzie to: ":([A-Za-z0-9_$#]*)". Oczywiście jeśli źródło danych nie obsługuje nazwanych parametrów, będzie to po prostu "?". |
Nazwa parametruMaxLength | int | Maksymalna długość nazwy parametru w znakach. Program Visual Studio oczekuje, że jeśli nazwy parametrów są obsługiwane, minimalna wartość maksymalnej długości to 30 znaków. Jeśli źródło danych nie obsługuje nazwanych parametrów, ta właściwość zwraca zero. |
ParametrNamePattern | string | Wyrażenie regularne zgodne z prawidłowymi nazwami parametrów. Różne źródła danych mają różne reguły dotyczące znaków, które mogą być używane dla nazw parametrów. Program Visual Studio oczekuje, że jeśli nazwy parametrów są obsługiwane, znaki "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" są minimalnym obsługiwanym zestawem znaków prawidłowych dla nazw parametrów. |
QuotedIdentifierPattern | string | Wyrażenie regularne, które pasuje do identyfikatora cytowanego i ma wartość dopasowania samego identyfikatora bez cudzysłowów. Jeśli na przykład źródło danych użyło podwójnych cudzysłowów w celu zidentyfikowania identyfikatorów cytowanych, będzie to: "([^\"]|\"\")*)". |
QuotedIdentifierCase | IdentifierCase | Wskazuje, czy identyfikatory cytowane są traktowane jako wrażliwe na wielkość liter, czy nie. |
StatementSeparatorPattern | string | Wyrażenie regularne zgodne z separatorem instrukcji. |
StringLiteralPattern | string | Wyrażenie regularne, które pasuje do literału ciągu i ma wartość dopasowania samego literału. Jeśli na przykład źródło danych używało pojedynczych cudzysłowów do identyfikowania ciągów, będzie to: "('([^']|') *')"' |
SupportedJoinOperators | SupportedJoinOperators | Określa typy instrukcji sprzężenia SQL są obsługiwane przez źródło danych. |
Typy danych
Ta kolekcja schematów udostępnia informacje o typach danych obsługiwanych przez bazę danych, z którą jest obecnie połączony dostawca zarządzany programu .NET Framework.
ColumnName | DataType | opis |
---|---|---|
TypeName | string | Nazwa typu danych specyficznego dla dostawcy. |
ProviderDbType | int | Wartość typu specyficznego dla dostawcy, która powinna być używana podczas określania typu parametru. Na przykład SqlDbType.Money lub OracleType.Blob. |
Columnsize | długi | Długość kolumny nieliczbowej lub parametru odnosi się do maksymalnej lub długości zdefiniowanej dla tego typu przez dostawcę. W przypadku danych znaków jest to maksymalna lub zdefiniowana długość w jednostkach zdefiniowanych przez źródło danych. Oracle ma koncepcję określania długości, a następnie określania rzeczywistego rozmiaru magazynu dla niektórych typów danych znaków. Definiuje to tylko długość jednostek dla programu Oracle. W przypadku typów danych daty i godziny jest to długość reprezentacji ciągu (przy założeniu maksymalnej dozwolonej precyzji składnika ułamkowych sekund). Jeśli typ danych jest liczbowy, jest to górna granica maksymalnej dokładności typu danych. |
CreateFormat | string | Ciąg formatu reprezentujący sposób dodawania tej kolumny do instrukcji definicji danych, takiej jak CREATE TABLE. Każdy element w tablicy CreateParameter powinien być reprezentowany przez "znacznik parametru" w ciągu formatu. Na przykład typ danych SQL DECIMAL wymaga dokładności i skali. W takim przypadku ciąg formatu to "DECIMAL({0},{1})". |
CreateParameters | string | Parametry tworzenia, które należy określić podczas tworzenia kolumny tego typu danych. Każdy parametr tworzenia jest wymieniony w ciągu rozdzielony przecinkiem w kolejności, w której mają być podane. Na przykład typ danych SQL DECIMAL wymaga dokładności i skali. W takim przypadku parametry tworzenia powinny zawierać ciąg "precyzja, skala". W poleceniu tekstowym, aby utworzyć kolumnę DZIESIĘTną z dokładnością 10 i 2, wartość kolumny CreateFormat może być dziesiętna({0}{1})" i kompletna specyfikacja typu to DECIMAL(10,2). |
DataType | string | Nazwa typu .NET Framework typu danych. |
IsAutoincrementable | bool | true — wartości tego typu danych mogą być automatycznie zwiększane. false — wartości tego typu danych mogą nie być automatycznie zwiększane. Należy pamiętać, że wskazuje to tylko, czy kolumna tego typu danych może być automatycznie zwiększana, a nie, że wszystkie kolumny tego typu są automatycznie zwiększane. |
IsBestMatch | bool | true — typ danych jest najlepszym dopasowaniem między wszystkimi typami danych w magazynie danych i typem danych programu .NET Framework wskazanym przez wartość w kolumnie DataType. false — typ danych nie jest najlepszym dopasowaniem. Dla każdego zestawu wierszy, w których wartość kolumny DataType jest taka sama, kolumna IsBestMatch jest ustawiona na wartość true tylko w jednym wierszu. |
IsCaseSensitive | bool | true — typ danych jest typem znaku i uwzględnia wielkość liter. false — typ danych nie jest typem znaku lub nie uwzględnia wielkości liter. |
IsFixedLength | bool | true — kolumny tego typu danych utworzone przez język definicji danych (DDL) będą mieć stałą długość. false — kolumny tego typu danych utworzone przez DDL będą mieć zmienną długość. DBNull.Value — nie wiadomo, czy dostawca zamapuje to pole na kolumnę o stałej długości lub zmiennej długości. |
IsFixedPrecisionScale | bool | true — typ danych ma stałą precyzję i skalę. false — typ danych nie ma stałej dokładności i skali. |
IsLong | bool | true — typ danych zawiera bardzo długie dane; definicja bardzo długich danych jest specyficzna dla dostawcy. false — typ danych nie zawiera bardzo długich danych. |
Isnullable | bool | true — typ danych ma wartość null. false — typ danych nie może zawierać wartości null. DBNull.Value — nie wiadomo, czy typ danych ma wartość null. |
IsSearchable | bool | true — typ danych może być używany w klauzuli WHERE z dowolnym operatorem z wyjątkiem predykatu LIKE. false — typ danych nie może być używany w klauzuli WHERE z żadnym operatorem z wyjątkiem predykatu LIKE. |
IsSearchableWithLike | bool | true — typ danych może być używany z predykatem LIKE false — nie można używać typu danych z predykatem LIKE. |
IsUnsigned | bool | true — typ danych jest niepodpisany. false — typ danych jest podpisany. DBNull.Value — nie dotyczy typu danych. |
Maksymalna skala | short | Jeśli wskaźnik typu jest typem liczbowym, jest to maksymalna liczba cyfr dozwolonych po prawej stronie przecinka dziesiętnego. W przeciwnym razie jest to DBNull.Value. |
Minimalna skala | short | Jeśli wskaźnik typu jest typem liczbowym, jest to minimalna liczba cyfr dozwolonych po prawej stronie punktu dziesiętnego. W przeciwnym razie jest to DBNull.Value. |
IsConcurrencyType | bool | true — typ danych jest aktualizowany przez bazę danych za każdym razem, gdy wiersz jest zmieniany, a wartość kolumny różni się od wszystkich poprzednich wartości false — typ danych jest aktualizowany przez bazę danych za każdym razem, gdy wiersz jest zmieniany DBNull.Value — baza danych nie obsługuje tego typu danych |
IsLiteralSupported | bool | true — typ danych może być wyrażony jako literał false — nie można wyrazić typu danych jako literału |
Literał Prefiks | string | Prefiks zastosowany do danego literału. |
LiterałSuffix | string | Sufiks zastosowany do danego literału. |
NativeDataType | String | NativeDataType to kolumna specyficzna dla OLE DB do uwidaczniania typu OLE DB typu danych . |
Ograniczenia
Ta kolekcja schematów ujawniła informacje o ograniczeniach obsługiwanych przez dostawcę zarządzanego programu .NET Framework, który jest obecnie używany do nawiązywania połączenia z bazą danych.
ColumnName | DataType | opis |
---|---|---|
CollectionName | string | Nazwa kolekcji, do których mają zastosowanie te ograniczenia. |
Nazwa ograniczeń | string | Nazwa ograniczenia w kolekcji. |
OgraniczenieDomyślne | string | Ignorowane. |
OgraniczenieNumber | int | Rzeczywista lokalizacja w ograniczeniach kolekcji, w których przypada to szczególne ograniczenie. |
Zastrzeżone Słowa
Ta kolekcja schematów udostępnia informacje o słowach zarezerwowanych przez bazę danych, z którą jest obecnie połączony dostawca zarządzany programu .NET Framework.
ColumnName | DataType | opis |
---|---|---|
ReservedWord | string | Słowo zarezerwowane specyficzne dla dostawcy. |