Udostępnij przez


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 programu .NET Framework, aby określić listę obsługiwanych kolekcji schematów, wywołując GetSchema metodę 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ą ParameterName 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 GetSchema metod, 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.

NazwaKolumny Typ danych Opis
Nazwa Kolekcji ciąg Nazwa kolekcji, która ma być przekazywana do GetSchema metody w celu zwrócenia kolekcji.
LiczbaOgraniczeń int (integer) Liczba ograniczeń, które można określić dla kolekcji.
LiczbaCzęściIdentyfikatora int (integer) 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.

Informacje o źródle danych

Ta kolekcja schematów udostępnia informacje o źródle danych, z którymi jest obecnie połączony dostawca zarządzany programu .NET Framework.

NazwaKolumny Typ danych Opis
WzorzecSeparatoraZłożonegoIdentyfikatora ciąg Wyrażenie regularne dopasowujące separatory złożone 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 OracleClient użyj "@|\".

W przypadku funkcji ODBC użyj Catalog_name_separator.

W przypadku OLE DB użyj DBLITERAL_CATALOG_SEPARATOR lub DBLITERAL_SCHEMA_SEPARATOR.
NazwaProduktuŹródłaDanych ciąg Nazwa produktu, do których uzyskuje dostęp dostawca, na przykład "Oracle" lub "SQLServer".
WersjaProduktuŹródłaDanych ciąg 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 interfejsów OLE DB i ODBC będą one zawsze takie same, ponieważ są mapowane na to samo wywołanie funkcji w podstawowym natywnym interfejsie API.
DataSourceProductVersionNormalized ciąg 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" dla znormalizowanej wersji, co powoduje, że źródło danych Oracle 8i zwraca "08.01.07.04.01". Program SQL Server używa typowego dla firmy Microsoft formatu "nn.nn.nnnn".

W niektórych przypadkach wartości DataSourceProductVersion i DataSourceProductVersionNormalized będą takie same. W przypadku OLE DB i ODBC będą one zawsze takie same, ponieważ 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.
WzorzecIdentyfikatora ciąg Wyrażenie regularne, które pasuje do identyfikatora i ma wartość dopasowania identyfikatora. Na przykład "[A-Za-z0-9_#$]".
Identyfikator IdentifierCase Wskazuje, czy identyfikatory inne niż cytowane są traktowane jako rozróżniające wielkość liter, czy nie.
SortujWedługKolumnWSelect 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 ciąg 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 być miejscem, w którym należy sformatować nazwę 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 ciąg 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 ze znakiem ":" jako znakiem poprzedzającym 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 (integer) 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.
ParametrNazwaWzorzec ciąg 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.
WzorzecCytowanegoIdentyfikatora ciąg 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.
WzorzecSeparatoraInstrukcji ciąg Wyrażenie regularne, które pasuje do separatora instrukcji.
StringLiteralPattern ciąg Wyrażenie regularne, które pasuje do ciągu znaków i ma wartość dopasowania odpowiadającą samemu ciągowi. Na przykład, jeśli źródło danych używało apostrofów do identyfikowania ciągów, będzie to: "('([^']|'')*')"
ObsługiwaneOperatoryŁączenia SupportedJoinOperators Określa, jakie 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.

NazwaKolumny Typ danych Opis
NazwaTypu ciąg Nazwa typu danych specyficznego dla dostawcy.
ProviderDbType int (integer) Wartość typu specyficznego dla dostawcy, która powinna być używana podczas określania typu parametru. Na przykład SqlDbType.Money lub OracleType.Blob.
Rozmiar kolumny długi Długość kolumny nieliczbowej lub parametru odnosi się do długości maksymalnej lub 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 pamięci dla niektórych typów danych typu znakowego. To określa tylko długość w jednostkach dla 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.
UtwórzFormat ciąg 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 w ciągu formatu przez "znacznik parametru".

Na przykład typ danych SQL DECIMAL wymaga dokładności i skali. W takim przypadku ciąg formatu to "DECIMAL({0},{1})".
UtwórzParametry ciąg Parametry tworzenia, które należy określić podczas tworzenia kolumny tego typu danych. Każdy parametr procesu 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 do utworzenia kolumny DECIMAL z precyzją 10 i skalą 2, wartość kolumny CreateFormat może być DECIMAL({0},{1}), a kompletna specyfikacja typu to DECIMAL(10,2).
Typ danych ciąg Nazwa typu danych w .NET Framework.
CzyMożnaZwiększaćAutomatycznie 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.
Uwzględnia wielkość liter Bool true — typ danych jest typem znakowym i uwzględnia wielkość liter.

false — typ danych nie jest typem znaku lub nie uwzględnia wielkości liter.
StałaDługość 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.
Można przeszukiwać za pomocą Like 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.

fałsz — typ danych jest znakowany.

DBNull.Value — nie dotyczy typu danych.
Maksymalna skala krótki 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 krótki 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.
TypWspółbieżności 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
LiteralPrefiks ciąg Prefiks zastosowany do danego literału.
LiterałSuffix ciąg Sufiks zastosowany do danego literału.
NativeDataType Sznurek NativeDataType to kolumna specyficzna dla OLE DB, ujawniająca typ danych OLE DB.

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.

NazwaKolumny Typ danych Opis
Nazwa Kolekcji ciąg Nazwa kolekcji, do których mają zastosowanie te ograniczenia.
Nazwa ograniczeń ciąg Nazwa ograniczenia w kolekcji.
Domyślne Ograniczenie ciąg Ignorowane.
NumerOgraniczenia int (integer) Rzeczywista lokalizacja tego szczególnego ograniczenia w ramach ograniczeń kolekcji.

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.

NazwaKolumny Typ danych Opis
ReservedWord ciąg Słowo zarezerwowane specyficzne dla dostawcy.

Zobacz także