Udostępnij za pośrednictwem


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.

Zobacz też