Sdílet prostřednictvím


Běž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. Dotazem na spravovaného zprostředkovatele rozhraní .NET Framework můžete určit seznam podporovaných kolekcí schémat voláním GetSchema metody bez argumentů nebo s názvem kolekce schématu MetaDataCollections. Tím se vrátí DataTable se seznamem podporovaných kolekcí schémat, počtem omezení, která každá kolekce podporuje, a počtem čá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í. Například SqlClient a OracleClient přidají ParameterName do kolekce omezení.

Pokud poskytovatel nemůže určit hodnotu požadovaného sloupce, vrátí hodnotu null.

Další informace o používání GetSchema metod naleznete v tématu GetSchema a Schema Collections.

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.

Název sloupce datový typ Popis
Název kolekce řetězec Název kolekce k předání metodě GetSchema pro vrácení kolekce.
Počet omezení int (integer) Počet omezení, která mohou být zadána pro kolekci.
PočetČástíIdentifikátoru int (integer) 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.

Informace o zdroji dat

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.

Název sloupce datový typ Popis
Vzorec oddělovače složeného identifikátoru řetězec Regulární výraz pro odpovídání složeným oddělovačům ve složeném 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.
NázevProduktDatovéhoZdroje řetězec Název produktu, ke který přistupuje poskytovatel, například Oracle nebo SQLServer.
VerzeProduktovéhoZdrojovéhoData řetězec 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 budou mít DataSourceProductVersion a DataSourceProductVersionNormalized stejnou hodnotu. V případě OLE DB a ODBC budou vždy totožné, protože jsou přiřazené ke stejnému volání funkce v nativním rozhraní API.
NormalizovanáVerzeProduktovéhoZdrojeDat řetězec 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é, protože jsou mapovány na stejné volání funkce v podkladovém nativním API.
GroupByBehavior GroupByBehavior Určuje relaci mezi sloupci v klauzuli GROUP BY a neagregovanými sloupci v seznamu select.
Identifikační vzor řetězec 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 uvozovkách, považují za citlivé na velikost písmen.
SeřaditPodleSloupcůVeVýběru Booleova hodnota Určuje, zda sloupce v klauzuli ORDER BY musí být v seznamu výběru. 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 řetězec Formátovací řetězec, který představuje způsob formátování parametru.

Pokud zdroj dat podporuje pojmenované parametry, na prvním místě v tomto řetězci by měl být zástupný symbol, kde se naformátuje 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 "?".
Vzor značky parametru řetězec 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 předřazeným znakem '@', který bude zahrnuto v názvu parametru, bude to: "(@[A-Za-z0-9_$#]*)".

Pokud jsou pojmenované parametry podporovány s ':' jako počátečním znakem 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 (integer) Maximální délka názvu parametru v počtu znaků. 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 řetězec 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 řetězec 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: "(([^\"]|\"\")*)".
PřípadQuotedIdentifikátoru IdentifierCase Udává, zda se uvozené identifikátory posuzují jako rozlišující nebo nerozlišující velikost písmen.
VzorOddělovačeVýroku řetězec Regulární výraz, který odpovídá oddělovači příkazů.
StringLiteralPattern řetězec 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: "('([^']|'')*')"
Podporovaní operátoři spojení 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.

Název sloupce datový typ Popis
NázevTypu řetězec Název datového typu specifického pro zprostředkovatele.
ProviderDbType int (integer) 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.
Velikost sloupce dlouhý 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 vyjádřená v jednotkách pro Oracle.

U datových typů s datem a časem je to délka řetězcové reprezentace (s maximální povolenou přesností komponenty pro zlomek sekund).

Pokud je datový typ číselný, je to horní mez maximální přesnosti datového typu.
Vytvořit Formát řetězec 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})".
VytvořitParametry řetězec Parametry vytvoření, které musí být zadány při vytváření sloupce tohoto datového typu. Každý parametr pro 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, rozsah".

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).
datový typ řetězec Název typu rozhraní .NET Framework datového typu.
JeAutomatickyInkrementovatelné Booleova hodnota 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 Booleova hodnota 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.
JeReagujícíNaVelikostPísmen Booleova hodnota "true" – Datový typ je typ znaku a rozlišuje velká a malá písmena.

false – Datový typ není typ znaku nebo nerozlišuje malá a velká písmena.
JePevnáDélka Booleova hodnota 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.
Fixní přesnost stupnice Booleova hodnota true – Datový typ má pevnou přesnost a rozsah.

false — Datový typ nemá pevnou přesnost a měřítko.
IsLong Booleova hodnota true – datový typ obsahuje velmi dlouhá data; definice velmi dlouhých dat je specifická pro poskytovatele.

false – Datový typ neobsahuje příliš dlouhá data.
JeNullovatelné Booleova hodnota true—Datový typ může mít hodnotu null.

false – Tento datový typ nemůže mít hodnotu null.

DBNull.Value – Není známo, zda je datový typ nullable.
JeVyhledatelné Booleova hodnota 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.
LzeVyhledatPomocíLike Booleova hodnota true – Datový typ lze použít s predikátem LIKE.

false – Datový typ nelze použít s predikátem LIKE.
IsUnsigned Booleova hodnota true – Datový typ je nepodepsaný.

false – datový typ je podepsaný.

DBNull.Value – Nelze použít pro datový typ.
Maximální měřítko krátký 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í měřítko krátký 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 Booleova hodnota 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 Booleova hodnota true – datový typ lze vyjádřit jako literál.

false – datový typ nelze vyjádřit jako literál.
LiteralPrefix řetězec Předpona použitá pro daný literál.
Přípona literálu řetězec Přípona použitá pro daný literál.
NativeDataType Řetězec 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.

Název sloupce datový typ Popis
Název kolekce řetězec Název kolekce, na kterou se tato omezení vztahují.
Název omezení řetězec Název omezení v kolekci.
OmezeníDefault řetězec Ignorovaný.
ČísloOmezení int (integer) Skutečné umístění v omezeních kolekce, kam tento konkrétní limit spadá.

Rezervovaná slova

Tato kolekce schémat poskytuje informace o slovech, která jsou vyhrazena databází, k níž je aktuálně připojený spravovaný zprostředkovatel .NET Framework.

Název sloupce datový typ Popis
RezervovanéSlovo řetězec Specifické rezervované slovo poskytovatele

Viz také