Dela via


Vanliga schemasamlingar

De vanliga schemasamlingarna är de schemasamlingar som implementeras av var och en av .NET Framework-hanterade providers. Du kan fråga en .NET Framework-hanterad provider för att fastställa listan över schemasamlingar som stöds genom att anropa metoden GetSchema utan argument eller med schemasamlingsnamnet "MetaDataCollections". Detta returnerar en DataTable med en lista över de schemasamlingar som stöds, antalet begränsningar som de stöder och antalet identifierardelar som de använder. Dessa samlingar beskriver alla obligatoriska kolumner. Leverantörer kan lägga till ytterligare kolumner om de vill. Du kan till exempel SqlClientOracleClient lägga till ParameterName i begränsningssamlingen.

Om en provider inte kan fastställa värdet för en obligatorisk kolumn returneras null.

Mer information om hur du använder GetSchema-metoderna finns i GetSchema och Schemasamlingar.

MetaDataCollections

Den här schemasamlingen visar information om alla schemasamlingar som stöds av den .NET Framework-hanterade providern som för närvarande används för att ansluta till databasen.

ColumnName DataType beskrivning
CollectionName sträng Namnet på samlingen som ska skickas till metoden GetSchema för att returnera samlingen.
NumberOfRestrictions heltal Antalet begränsningar som kan anges för samlingen.
NumberOfIdentifierParts heltal Antalet delar i det sammansatta identifierar-/databasobjektets namn. I SQL Server skulle det till exempel vara 3 för tabeller och 4 för kolumner. I Oracle skulle det vara 2 för tabeller och 3 för kolumner.

DataSourceInformation

Den här schemasamlingen visar information om datakällan som den .NET Framework-hanterade providern för närvarande ansluter till.

ColumnName DataType beskrivning
CompositeIdentifierSeparatorPattern sträng Det reguljära uttrycket som matchar de sammansatta avgränsarna i en sammansatt identifierare. Till exempel "\". (för SQL Server) eller "@|\.". (för Oracle).

En sammansatt identifierare är vanligtvis det som används för ett databasobjektnamn, till exempel pubs.dbo.authors eller pubs@dbo.authors.

För SQL Server använder du det reguljära uttrycket "\". För OracleClient använder du "@|\.".

För ODBC använder du Catalog_name_separator.

Använd DBLITERAL_CATALOG_SEPARATOR eller DBLITERAL_SCHEMA_SEPARATOR för OLE DB.
DataSourceProductName sträng Namnet på den produkt som används av providern, till exempel "Oracle" eller "SQLServer".
DataSourceProductVersion sträng Anger vilken version av produkten som används av providern, i det interna datakällornas format och inte i Microsoft-format.

I vissa fall är DataSourceProductVersion och DataSourceProductVersionNormalized samma värde. När det gäller OLE DB och ODBC är dessa alltid desamma som de mappas till samma funktionsanrop i det underliggande interna API:et.
DataSourceProductVersionNormalized sträng En normaliserad version för datakällan, så att den kan jämföras med String.Compare(). Formatet för detta är konsekvent för alla versioner av providern för att förhindra att version 10 sorterar mellan version 1 och version 2.

Oracle-providern använder till exempel formatet "nn.nn.nn.nn.nn.nn" för sin normaliserade version, vilket gör att en Oracle 8i-datakälla returnerar "08.01.07.04.01". SQL Server använder det typiska Microsoft-formatet "nn.nn.nnnn".

I vissa fall är DataSourceProductVersion och DataSourceProductVersionNormalized samma värde. När det gäller OLE DB och ODBC är dessa alltid samma som de mappas till samma funktionsanrop i det underliggande interna API:et.
GroupByBehavior GroupByBehavior Anger relationen mellan kolumnerna i en GROUP BY-sats och de icke-aggregerade kolumnerna i urvalslistan.
IdentifierPattern sträng Ett reguljärt uttryck som matchar en identifierare och har ett matchningsvärde för identifieraren. Till exempel "[A-Za-z0-9_#$]".
IdentifierCase IdentifierCase Anger om icke-citerade identifierare behandlas som skiftlägeskänsliga eller inte.
OrderByColumnsInSelect bool Anger om kolumner i en ORDER BY-sats måste finnas i urvalslistan. Värdet true anger att de måste finnas i urvalslistan, ett värde med falskt anger att de inte måste finnas i urvalslistan.
ParameterMarkerFormat sträng En formatsträng som representerar hur du formaterar en parameter.

Om namngivna parametrar stöds av datakällan bör den första platshållaren i den här strängen vara den plats där parameternamnet ska formateras.

Om datakällan till exempel förväntar sig att parametrarna ska namnges och prefixet med ":" skulle detta vara ":{0}". När du formaterar detta med parameternamnet "p1" är den resulterande strängen ":p 1".

Om datakällan förväntar sig att parametrarna ska prefixas med @, men namnen redan innehåller dem, skulle detta vara '{0}', och resultatet av formateringen av en parameter med namnet "@p1" skulle helt enkelt vara "@p1".

För datakällor som inte förväntar sig namngivna parametrar och förväntar sig användning av tecknet ?, kan formatsträngen anges som "?", vilket skulle ignorera parameternamnet. För OLE DB returnerar vi ?.
ParameterMarkerPattern sträng Ett reguljärt uttryck som matchar en parametermarkör. Det kommer att ha ett matchningsvärde för parameternamnet, om det finns något.

Om namngivna parametrar till exempel stöds med ett "@"-lead-in-tecken som ska inkluderas i parameternamnet, skulle detta vara: "(@[A-Za-z0-9_$#]*)".

Men om namngivna parametrar stöds med ":" som lead-in-tecken och det inte ingår i parameternamnet, skulle detta vara: ":([A-Za-z0-9_$#]*)".

Om datakällan inte har stöd för namngivna parametrar skulle det naturligtvis bara vara "?".
ParameterNameMaxLength heltal Den maximala längden på ett parameternamn i tecken. Visual Studio förväntar sig att om parameternamn stöds är det minsta värdet för den maximala längden 30 tecken.

Om datakällan inte stöder namngivna parametrar returnerar den här egenskapen noll.
ParameterNamePattern sträng Ett reguljärt uttryck som matchar de giltiga parameternamnen. Olika datakällor har olika regler för de tecken som kan användas för parameternamn.

Visual Studio förväntar sig att om parameternamn stöds är tecknen "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" den minsta uppsättning tecken som stöds som är giltiga för parameternamn.
QuotedIdentifierPattern sträng Ett reguljärt uttryck som matchar en citerad identifierare och har ett matchningsvärde för själva identifieraren utan citattecken. Om datakällan till exempel använde dubbla citattecken för att identifiera citerade identifierare skulle det vara: "(([^\"]|\"\")*)".
QuotedIdentifierCase IdentifierCase Anger om citerade identifierare behandlas som skiftlägeskänsliga eller inte.
StatementSeparatorPattern sträng Ett reguljärt uttryck som matchar instruktionsavgränsaren.
StringLiteralPattern sträng Ett reguljärt uttryck som matchar en strängliteral och har ett matchningsvärde för själva literalen. Om datakällan till exempel använde enkla citattecken för att identifiera strängar skulle det vara: "('([^']|') *')"'
SupportedJoinOperators SupportedJoinOperators Anger vilka typer av SQL-kopplingsinstruktioner som stöds av datakällan.

Datatyper

Den här schemasamlingen visar information om de datatyper som stöds av databasen som den .NET Framework-hanterade providern för närvarande är ansluten till.

ColumnName DataType beskrivning
Typename sträng Namnet på den providerspecifika datatypen.
ProviderDbType heltal Det providerspecifika typvärde som ska användas när du anger en parameters typ. Till exempel SqlDbType.Money eller OracleType.Blob.
Kolumnstorlek lång Längden på en icke-numerisk kolumn eller parameter refererar till antingen den maximala eller den längd som definierats för den här typen av provider.

För teckendata är detta den maximala eller definierade längden i enheter som definieras av datakällan. Oracle har konceptet att ange en längd och sedan ange den faktiska lagringsstorleken för vissa teckendatatyper. Detta definierar endast längden i enheter för Oracle.

För datatyper för datum-tid är detta längden på strängrepresentationen (förutsatt att den högsta tillåtna precisionen för komponenten fractional seconds).

Om datatypen är numerisk är detta den övre gränsen för datatypens maximala precision.
CreateFormat sträng Formatera sträng som representerar hur du lägger till den här kolumnen i en datadefinitionssats, till exempel CREATE TABLE. Varje element i matrisen CreateParameter ska representeras av en "parametermarkör" i formatsträngen.

SQL-datatypen DECIMAL behöver till exempel en precision och en skalning. I det här fallet skulle formatsträngen vara "DECIMAL({0},{1})".
CreateParameters sträng De skapandeparametrar som måste anges när du skapar en kolumn av den här datatypen. Varje skapandeparameter visas i strängen, avgränsad med ett kommatecken i den ordning de ska anges.

SQL-datatypen DECIMAL behöver till exempel en precision och en skalning. I det här fallet ska skapandeparametrarna innehålla strängen "precision, skala".

I ett textkommando för att skapa en DECIMAL-kolumn med precisionen 10 och en skala på 2 kan värdet för kolumnen CreateFormat vara DECIMAL({0},{1})" och den fullständiga typspecifikationen är DECIMAL(10,2).
DataType sträng Namnet på .NET Framework-typen för datatypen.
IsAutoincrementable bool true – Värden för den här datatypen kan öka automatiskt.

false – Värden av den här datatypen kanske inte ökar automatiskt.

Observera att detta bara anger om en kolumn av den här datatypen kan öka automatiskt, inte att alla kolumner av den här typen ökar automatiskt.
IsBestMatch bool true – Datatypen är den bästa matchningen mellan alla datatyper i datalagret och .NET Framework-datatypen som anges av värdet i kolumnen DataType.

false – Datatypen är inte den bästa matchningen.

För varje uppsättning rader där värdet för kolumnen DataType är detsamma anges kolumnen IsBestMatch till true på endast en rad.
IsCaseSensitive bool true – Datatypen är en teckentyp och är skiftlägeskänslig.

false – Datatypen är inte en teckentyp eller är inte skiftlägeskänslig.
IsFixedLength bool true – Kolumner av den här datatypen som skapats av datadefinitionsspråket (DDL) har en fast längd.

false – Kolumner av den här datatypen som skapas av DDL kommer att ha variabel längd.

DBNull.Value – Det är inte känt om providern kommer att mappa det här fältet med en kolumn med fast längd eller variabel längd.
IsFixedPrecisionScale bool true – Datatypen har en fast precision och skala.

false – Datatypen har ingen fast precision och skalning.
IsLong bool true – Datatypen innehåller mycket långa data. definitionen av mycket långa data är providerspecifik.

false – Datatypen innehåller inte särskilt långa data.
IsNullable bool true – Datatypen är nullbar.

false – Datatypen kan inte vara null.

DBNull.Value – Det är inte känt om datatypen är null.
IsSearchable bool true – Datatypen kan användas i en WHERE-sats med alla operatorer utom LIKE-predikatet.

false – Datatypen kan inte användas i en WHERE-sats med någon operator förutom LIKE-predikatet.
IsSearchableWithLike bool true – Datatypen kan användas med LIKE-predikatet

false – Datatypen kan inte användas med LIKE-predikatet.
IsUnsigned bool true – Datatypen är osignerad.

false – Datatypen är signerad.

DBNull.Value – Gäller inte för datatyp.
MaximumScale short Om typindikatorn är en numerisk typ är det här det maximala antalet siffror som tillåts till höger om decimaltecknet. Annars är detta DBNull.Value.
MinimumScale short Om typindikatorn är en numerisk typ är det här det minsta antalet siffror som tillåts till höger om decimaltecknet. Annars är detta DBNull.Value.
IsConcurrencyType bool true – datatypen uppdateras av databasen varje gång raden ändras och värdet för kolumnen skiljer sig från alla tidigare värden

false – datatypen uppdateras av databasen varje gång raden ändras

DBNull.Value – databasen stöder inte den här typen av datatyp
IsLiteralSupported bool true – datatypen kan uttryckas som en literal

false – datatypen kan inte uttryckas som en literal
LiteralPrefix sträng Prefixet som tillämpas på en viss literal.
LiteralSuffix sträng Suffixet som tillämpas på en viss literal.
NativeDataType String NativeDataType är en OLE DB-specifik kolumn för att exponera OLE DB-typen av datatypen .

Begränsningar

Den här schemasamlingen visade information om de begränsningar som stöds av den hanterade .NET Framework-providern som för närvarande används för att ansluta till databasen.

ColumnName DataType beskrivning
CollectionName sträng Namnet på den samling som dessa begränsningar gäller för.
RestrictionName sträng Namnet på begränsningen i samlingen.
RestrictionDefault sträng Ignoreras.
RestrictionNumber heltal Den faktiska platsen i samlingsbegränsningarna som den här begränsningen ingår i.

ReservedWords

Den här schemasamlingen visar information om de ord som är reserverade av databasen som den .NET Framework-hanterade providern som för närvarande är ansluten till.

ColumnName DataType beskrivning
ReservedWord sträng Providerspecifikt reserverat ord.

Se även