Společné kolekce schémat
Běžné kolekce schémat jsou kolekce schémat, které jsou implementovány jednotlivými poskytovateli spravovanými rozhraním .NET Framework. Můžete dotazovat spravovaného zprostředkovatele rozhraní .NET Framework a určit seznam podporovaných kolekcí schémat voláním metody GetSchema bez argumentů nebo s názvem kolekce schématu MetaDataCollections. Tím se vrátí DataTable seznam podporovaných kolekcí schémat, počet omezení, která každá podpora podporuje, a počet částí identifikátorů, které používají. Tyto kolekce popisují všechny požadované sloupce. Poskytovatelé můžou přidávat další sloupce, pokud chtějí. Do kolekce omezení můžete například SqlClient
OracleClient
přidat ParametrName.
Pokud poskytovatel nemůže určit hodnotu požadovaného sloupce, vrátí hodnotu null.
Další informace o používání metod GetSchema naleznete v tématu GetSchema a kolekce schémat.
MetaDataCollections
Tato kolekce schématu zveřejňuje informace o všech kolekcích schémat podporovaných spravovaným zprostředkovatelem rozhraní .NET Framework, který se aktuálně používá pro připojení k databázi.
ColumnName | DataType | Popis |
---|---|---|
Název kolekce | string | Název kolekce, která se má předat metodě GetSchema pro vrácení kolekce. |
NumberOfRestrictions | int | Počet omezení, která mohou být zadána pro kolekci. |
NumberOfIdentifierParts | int | Počet částí v názvu složeného identifikátoru nebo databázového objektu. Například na SQL Serveru by to bylo 3 pro tabulky a 4 pro sloupce. V Oracle by to bylo 2 pro tabulky a 3 pro sloupce. |
DataSourceInformation
Tato kolekce schématu zveřejňuje informace o zdroji dat, ke kterému se aktuálně připojuje spravovaný zprostředkovatel rozhraní .NET Framework.
ColumnName | DataType | Popis |
---|---|---|
CompositeIdentifierSeparatorPattern | string | Regulární výraz odpovídající složeným oddělovačům ve složeného identifikátoru. Například \. (pro SQL Server) nebo @|\. (pro Oracle). Složený identifikátor se obvykle používá pro název databázového objektu, například pubs.dbo.authors nebo pubs@dbo.authors. Pro SQL Server použijte regulární výraz \. Pro OracleClient použijte @|\. Pro rozhraní ODBC použijte Catalog_name_separator. Pro OLE DB použijte DBLITERAL_CATALOG_SEPARATOR nebo DBLITERAL_SCHEMA_SEPARATOR. |
DataSourceProductName | string | Název produktu, ke který přistupuje poskytovatel, například Oracle nebo SQLServer. |
DataSourceProductVersion | string | Označuje verzi produktu, ke které má poskytovatel přístup, v nativním formátu zdrojů dat, nikoli ve formátu Microsoftu. V některých případech bude hodnota DataSourceProductVersion a DataSourceProductVersionNormalized. V případě OLE DB a ODBC budou vždy stejné jako namapované na stejné volání funkce v podkladovém nativním rozhraní API. |
DataSourceProductVersionNormalized | string | Normalizovaná verze zdroje dat, aby bylo možné ji porovnat s String.Compare() . Formát je konzistentní pro všechny verze poskytovatele, aby se zabránilo řazení verze 10 mezi verzí 1 a verzí 2.Například poskytovatel Oracle používá pro svou normalizovanou verzi formát "nn.nn.nn.nn.nn", což způsobí, že zdroj dat Oracle 8i vrátí hodnotu 08.01.07.04.01. SQL Server používá typický formát Microsoft nn.nn.nnnn. V některých případech bude dataSourceProductVersion a DataSourceProductVersionNormalized stejná hodnota. V případě OLE DB a ODBC budou vždy stejné jako namapované na stejné volání funkce v podkladovém nativním rozhraní API. |
GroupByBehavior | GroupByBehavior | Určuje relaci mezi sloupci v klauzuli GROUP BY a neagregovanými sloupci v seznamu select. |
IdentifierPattern | string | Regulární výraz, který odpovídá identifikátoru a má odpovídající hodnotu identifikátoru. Například "[A-Za-z0-9_#$]". |
Identifikátorcase | IdentifierCase | Označuje, jestli se identifikátory, které nejsou v uvozových znacích, považují za citlivé na malá a velká písmena. |
OrderByColumnsInSelect | bool | Určuje, zda sloupce v klauzuli ORDER BY musí být v seznamu select. Hodnota true označuje, že musí být v seznamu výběru, hodnota false označuje, že nejsou nutné být v seznamu výběru. |
ParameterMarkerFormat | string | Formátovací řetězec, který představuje způsob formátování parametru. Pokud zdroj dat podporuje pojmenované parametry, měl by první zástupný symbol v tomto řetězci být naformátovaný název parametru. Pokud například zdroj dat očekává, že se parametry pojmenují a mají předponu ":", bude to ":{0}". Při formátování s názvem parametru "p1" je výsledný řetězec ":p 1". Pokud zdroj dat očekává, že parametry budou mít předponu @, ale názvy už je obsahují, bude to "{0}" a výsledkem formátování parametru s názvem "@p1" bude jednoduše "@p1". U zdrojů dat, které neočekávají pojmenované parametry a očekávají použití znaku "?", lze formátovací řetězec zadat jednoduše "?", což by ignorovalo název parametru. Pro OLE DB vrátíme "?". |
ParameterMarkerPattern | string | Regulární výraz, který odpovídá značce parametru. Pokud existuje, bude mít odpovídající hodnotu názvu parametru. Pokud jsou například pojmenované parametry podporovány znakem potenciálního znaku @, který bude součástí názvu parametru, bude to: "(@[A-Za-z0-9_$#]*)". Pokud se ale pojmenované parametry podporují jako znak lead-in a není součástí názvu parametru, bude to: ":([A-Za-z0-9_$#]*)". Pokud zdroj dat samozřejmě nepodporuje pojmenované parametry, bude to jednoduše "?". |
ParameterNameMaxLength | int | Maximální délka názvu parametru ve znaky. Visual Studio očekává, že pokud jsou podporovány názvy parametrů, minimální hodnota maximální délky je 30 znaků. Pokud zdroj dat nepodporuje pojmenované parametry, vrátí tato vlastnost nulu. |
ParameterNamePattern | string | Regulární výraz, který odpovídá platným názvům parametrů. Různé zdroje dat mají různá pravidla týkající se znaků, které lze použít pro názvy parametrů. Visual Studio očekává, že pokud jsou podporovány názvy parametrů, znaky \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} jsou minimální podporovaná sada znaků, které jsou platné pro názvy parametrů. |
QuotedIdentifierPattern | string | Regulární výraz, který odpovídá identifikátoru v uvozovkách a má odpovídající hodnotu samotného identifikátoru bez uvozovek. Pokud například zdroj dat použil dvojité uvozovky k identifikaci identifikátorů uvozovek, bude to: "(([^\"]|\"\")*)". |
QuotedIdentifierCase | IdentifierCase | Označuje, jestli se identifikátory uvozových čísel považují za malá a velká písmena nebo ne. |
StatementSeparatorPattern | string | Regulární výraz, který odpovídá oddělovači příkazů. |
StringLiteralPattern | string | Regulární výraz, který odpovídá řetězcovém literálu a má odpovídající hodnotu samotného literálu. Pokud například zdroj dat k identifikaci řetězců použil jednoduché uvozovky, bude to:('([^']|') *')"' |
SupportedJoinOperators | SupportedJoinOperators | Určuje, jaké typy příkazů spojení SQL podporuje zdroj dat. |
Datové typy
Tato kolekce schématu zveřejňuje informace o datových typech podporovaných databází, ke které je aktuálně připojený spravovaný zprostředkovatel rozhraní .NET Framework.
ColumnName | DataType | Popis |
---|---|---|
TypeName | string | Název datového typu specifického pro zprostředkovatele. |
ProviderDbType | int | Hodnota typu specifická pro zprostředkovatele, která by se měla použít při zadávání typu parametru. Například SqlDbType.Money nebo OracleType.Blob. |
Columnsize | long | Délka nečíselného sloupce nebo parametru odkazuje na maximální nebo délku definovanou pro tento typ poskytovatelem. U znakových dat se jedná o maximální nebo definovanou délku v jednotkách definovaných zdrojem dat. Oracle má koncept určení délky a určení skutečné velikosti úložiště pro některé datové typy znaků. Tím se definuje pouze délka jednotek pro Oracle. U datových typů s datem a časem se jedná o délku řetězcové reprezentace (za předpokladu, že maximální povolená přesnost komponenty zlomku sekund). Pokud je datový typ číselný, je to horní mez maximální přesnosti datového typu. |
CreateFormat | string | Formátovací řetězec, který představuje způsob přidání tohoto sloupce do příkazu definice dat, například CREATE TABLE. Každý prvek v poli CreateParameter by měl být reprezentován značkou parametru v řetězci formátu. Například datový typ SQL DECIMAL vyžaduje přesnost a měřítko. V tomto případě by formátovací řetězec byl "DECIMAL({0};{1})". |
CreateParameters | string | Parametry vytvoření, které musí být zadány při vytváření sloupce tohoto datového typu. Každý parametr vytvoření je uveden v řetězci oddělený čárkou v pořadí, v jakém mají být zadány. Například datový typ SQL DECIMAL vyžaduje přesnost a měřítko. V tomto případě by parametry vytvoření měly obsahovat řetězec "přesnost, měřítko". V textovém příkazu pro vytvoření sloupce DECIMAL s přesností 10 a měřítkem 2 může být hodnota sloupce CreateFormat DECIMAL({0};{1}) a úplná specifikace typu bude DECIMAL(10;2). |
DataType | string | Název typu rozhraní .NET Framework datového typu. |
IsAutoincrementable | bool | true – Hodnoty tohoto datového typu se můžou automaticky zvýšit. false – Hodnoty tohoto datového typu nemusí být automaticky inkrementované. Všimněte si, že to pouze značí, jestli se sloupec tohoto datového typu může automaticky zvýšit, ne že všechny sloupce tohoto typu se automaticky navyšují. |
IsBestMatch | bool | true – Datový typ je nejlepší shoda mezi všemi datovými typy v úložišti dat a datovým typem rozhraní .NET Framework označeným hodnotou ve sloupci DataType. false – Datový typ není nejlepší shodou. Pro každou sadu řádků, ve kterých je hodnota sloupce DataType stejná, je sloupec IsBestMatch nastaven na true pouze v jednom řádku. |
IsCaseSensitive | bool | true – Datový typ je typ znaku a rozlišují se malá a velká písmena. false – Datový typ není typ znaku nebo nerozlišuje malá a velká písmena. |
IsFixedLength | bool | true – Sloupce tohoto datového typu vytvořeného jazykem DDL (Data Definition Language) budou mít pevnou délku. false – sloupce tohoto datového typu vytvořeného DDL budou mít proměnnou délku. DBNull.Value – Není známo, zda zprostředkovatel mapuje toto pole s pevnou délkou nebo sloupcem s proměnnou délkou. |
IsFixedPrecisionScale | bool | true – Datový typ má pevnou přesnost a měřítko. false – Datový typ nemá pevnou přesnost a měřítko. |
IsLong | bool | true – datový typ obsahuje velmi dlouhá data; definice velmi dlouhých dat je specifická pro poskytovatele. false – Datový typ neobsahuje příliš dlouhá data. |
Isnullable | bool | true – Datový typ je nullable. false – Datový typ není nullable. DBNull.Value – Není známo, zda je datový typ nullable. |
IsSearchable | bool | true – Datový typ lze použít v klauzuli WHERE s libovolným operátorem s výjimkou predikátu LIKE. false – Datový typ nelze použít v klauzuli WHERE s žádným operátorem s výjimkou predikátu LIKE. |
IsSearchableWithLike | bool | true – Datový typ lze použít s predikátem LIKE. false – Datový typ nelze použít s predikátem LIKE. |
IsUnsigned | bool | true – Datový typ je nepodepsaný. false – datový typ je podepsaný. DBNull.Value – Nelze použít pro datový typ. |
MaximumScale | short | Pokud je indikátor typu číselný typ, jedná se o maximální počet číslic povolených napravo od desetinné čárky. Jinak je to DBNull.Value. |
Minimální škálování | short | Pokud je indikátor typu číselný typ, jedná se o minimální počet číslic povolených vpravo od desetinné čárky. Jinak je to DBNull.Value. |
IsConcurrencyType | bool | true – datový typ se aktualizuje databází při každé změně řádku a hodnota sloupce se liší od všech předchozích hodnot. false – datový typ se aktualizuje databází při každé změně řádku. DBNull.Value – databáze nepodporuje tento typ datového typu. |
IsLiteralSupported | bool | true – datový typ lze vyjádřit jako literál. false – datový typ nelze vyjádřit jako literál. |
LiteralPrefix | string | Předpona použitá pro daný literál. |
Přípona literálu | string | Přípona použitá pro daný literál. |
NativeDataType | String | NativeDataType je konkrétní sloupec OLE DB pro zveřejnění typu OLE DB datového typu . |
Omezení
Tato kolekce schématu odhalila informace o omezeních podporovaných spravovaným poskytovatelem rozhraní .NET Framework, která se aktuálně používají pro připojení k databázi.
ColumnName | DataType | Popis |
---|---|---|
Název kolekce | string | Název kolekce, na kterou se tato omezení vztahují. |
RestrictionName | string | Název omezení v kolekci. |
OmezeníDefault | string | Ignorovány. |
RestrictionNumber | int | Skutečné umístěnívch |
ReservedWords
Tato kolekce schématu zveřejňuje informace o slovech vyhrazených databází, ke kterým je aktuálně připojený spravovaný zprostředkovatel rozhraní .NET Framework.
ColumnName | DataType | Popis |
---|---|---|
ReservedWord | string | Rezervované slovo specifické pro poskytovatele |