Delen via


Algemene schemaverzamelingen

De algemene schemaverzamelingen zijn de schemaverzamelingen die door elk van de beheerde .NET Framework-providers worden geïmplementeerd. U kunt een door .NET Framework beheerde provider opvragen om de lijst met ondersteunde schemaverzamelingen te bepalen door de GetSchema-methode zonder argumenten aan te roepen of met de naam van de schemaverzameling 'MetaDataCollections'. Hiermee wordt een DataTable lijst geretourneerd met een lijst met ondersteunde schemaverzamelingen, het aantal beperkingen dat ze elk ondersteunen en het aantal id-onderdelen dat ze gebruiken. In deze verzamelingen worden alle vereiste kolommen beschreven. Providers kunnen desgewenst extra kolommen toevoegen. Voeg OracleClient bijvoorbeeld SqlClient ParameterName toe aan de verzameling beperkingen.

Als een provider de waarde van een vereiste kolom niet kan bepalen, wordt null geretourneerd.

Zie GetSchema- en Schema-verzamelingen voor meer informatie over het gebruik van de GetSchema-methoden.

MetaDataCollections

Deze schemaverzameling bevat informatie over alle schemaverzamelingen die worden ondersteund door de beheerde .NET Framework-provider die momenteel wordt gebruikt om verbinding te maken met de database.

ColumnName DataType Beschrijving
NaamVerzameling tekenreeks De naam van de verzameling die moet worden doorgegeven aan de Methode GetSchema om de verzameling te retourneren.
NumberOfRestrictions int Het aantal beperkingen dat kan worden opgegeven voor de verzameling.
NumberOfIdentifierParts int Het aantal onderdelen in de naam van het samengestelde id/databaseobject. In SQL Server is dit bijvoorbeeld 3 voor tabellen en 4 voor kolommen. In Oracle is dit 2 voor tabellen en 3 voor kolommen.

DataSourceInformation

Deze schemaverzameling bevat informatie over de gegevensbron waarmee de beheerde .NET Framework-provider momenteel verbinding maakt.

ColumnName DataType Beschrijving
CompositeIdentifierSeparatorPattern tekenreeks De reguliere expressie die overeenkomt met de samengestelde scheidingstekens in een samengestelde id. Bijvoorbeeld '\'. (voor SQL Server) of @|\. (voor Oracle).

Een samengestelde id is meestal wat wordt gebruikt voor de naam van een databaseobject, bijvoorbeeld: pubs.dbo.authors of pubs@dbo.authors.

Gebruik voor SQL Server de reguliere expressie '\'. Gebruik @|\voor OracleClient.

Gebruik voor ODBC de Catalog_name_separator.

Gebruik voor OLE DB DBLITERAL_CATALOG_SEPARATOR of DBLITERAL_SCHEMA_SEPARATOR.
DataSourceProductName tekenreeks De naam van het product dat door de provider wordt geopend, zoals 'Oracle' of 'SQLServer'.
DataSourceProductVersion tekenreeks Geeft de versie aan van het product dat door de provider wordt geopend, in de systeemeigen indeling van de gegevensbronnen en niet in Microsoft-indeling.

In sommige gevallen is DataSourceProductVersion en DataSourceProductVersionNormalized dezelfde waarde. In het geval van OLE DB en ODBC zijn deze altijd hetzelfde als ze zijn toegewezen aan dezelfde functie-aanroep in de onderliggende systeemeigen API.
DataSourceProductVersionNormalized tekenreeks Een genormaliseerde versie voor de gegevensbron, zodat deze kan worden vergeleken met String.Compare(). De indeling hiervan is consistent voor alle versies van de provider om te voorkomen dat versie 10 wordt gesorteerd tussen versie 1 en versie 2.

De Oracle-provider gebruikt bijvoorbeeld de indeling nn.nn.nn.nn.nn.nn voor de genormaliseerde versie, waardoor een Oracle 8i-gegevensbron '08.01.07.04.01' retourneert. SQL Server gebruikt de typische Microsoft-indeling nn.nn.nnnn.

In sommige gevallen zijn DataSourceProductVersion en DataSourceProductVersionNormalized dezelfde waarde. In het geval van OLE DB en ODBC zijn deze altijd hetzelfde als ze zijn toegewezen aan dezelfde functie-aanroep in de onderliggende systeemeigen API.
GroupByBehavior GroupByBehavior Hiermee geeft u de relatie tussen de kolommen in een GROUP BY-component en de niet-geaggregeerde kolommen in de selectielijst.
IdentifierPattern tekenreeks Een reguliere expressie die overeenkomt met een id en een overeenkomstwaarde van de id heeft. Bijvoorbeeld '[A-Za-z0-9_#$]'.
IdentifierCase IdentifierCase Geeft aan of niet-geciteerde id's worden behandeld als hoofdlettergevoelig of niet.
OrderByColumnsInSelect bool Hiermee geeft u op of kolommen in een ORDER BY-component in de selectielijst moeten staan. Een waarde waar geeft aan dat ze in de selectielijst moeten staan, een waarde van onwaar geeft aan dat ze niet in de selectielijst hoeven te staan.
ParameterMarkerFormat tekenreeks Een notatietekenreeks die aangeeft hoe een parameter moet worden opgemaakt.

Als benoemde parameters worden ondersteund door de gegevensbron, moet de eerste tijdelijke aanduiding in deze tekenreeks zijn waar de parameternaam moet worden opgemaakt.

Als de gegevensbron bijvoorbeeld verwacht dat parameters een naam krijgen en een voorvoegsel hebben met een ':', zou dit ':{0}' zijn. Wanneer u dit opmaakt met de parameternaam 'p1', is de resulterende tekenreeks ':p 1'.

Als de gegevensbron verwacht dat parameters worden voorafgegaan door het @, maar de namen deze al bevatten, zou dit '{0}' zijn en zou het resultaat van het opmaken van een parameter met de naam '@p1' gewoon '@p1' zijn.

Voor gegevensbronnen die geen benoemde parameters verwachten en het gebruik van het teken '?' verwachten, kan de notatietekenreeks worden opgegeven als gewoon '?', waardoor de parameternaam wordt genegeerd. Voor OLE DB retourneren we '?'.
ParameterMarkerPattern tekenreeks Een reguliere expressie die overeenkomt met een parametermarkering. Deze heeft een overeenkomende waarde van de parameternaam, indien van toepassing.

Als benoemde parameters bijvoorbeeld worden ondersteund met een @-lead-in-teken dat wordt opgenomen in de parameternaam, is dit: "(@[A-Za-z0-9_$#]*)".

Als benoemde parameters echter worden ondersteund met een ':' als het lead-in-teken en deze niet deel uitmaakt van de parameternaam, is dit: ":([A-Za-z0-9_$#]*)".

Als de gegevensbron natuurlijk geen ondersteuning biedt voor benoemde parameters, is dit gewoon '?'.
ParameterNameMaxLength int De maximale lengte van een parameternaam in tekens. Visual Studio verwacht dat als parameternamen worden ondersteund, de minimumwaarde voor de maximale lengte 30 tekens is.

Als de gegevensbron geen ondersteuning biedt voor benoemde parameters, retourneert deze eigenschap nul.
ParameterNamePattern tekenreeks Een reguliere expressie die overeenkomt met de geldige parameternamen. Verschillende gegevensbronnen hebben verschillende regels met betrekking tot de tekens die kunnen worden gebruikt voor parameternamen.

Visual Studio verwacht dat als parameternamen worden ondersteund, de tekens \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} de minimaal ondersteunde set tekens zijn die geldig zijn voor parameternamen.
QuotedIdentifierPattern tekenreeks Een reguliere expressie die overeenkomt met een aanhalingstekens en een overeenkomstwaarde heeft van de id zelf zonder de aanhalingstekens. Als de gegevensbron bijvoorbeeld dubbele aanhalingstekens heeft gebruikt om aanhalingstekens te identificeren, is dit: (([^\"]|\")*)".
QuotedIdentifierCase IdentifierCase Hiermee wordt aangegeven of id's tussen aanhalen als hoofdlettergevoelig of niet worden behandeld.
StatementSeparatorPattern tekenreeks Een reguliere expressie die overeenkomt met het instructiescheidingsteken.
StringLiteralPattern tekenreeks Een reguliere expressie die overeenkomt met een letterlijke tekenreeks en een overeenkomende waarde van de letterlijke waarde heeft. Als de gegevensbron bijvoorbeeld enkele aanhalingstekens heeft gebruikt om tekenreeksen te identificeren, is dit: ('([^']|') *')"'
SupportedJoinOperators SupportedJoinOperators Hiermee geeft u op welke typen SQL-join-instructies worden ondersteund door de gegevensbron.

Datatypes

Deze schemaverzameling bevat informatie over de gegevenstypen die worden ondersteund door de database waarmee de beheerde .NET Framework-provider momenteel is verbonden.

ColumnName DataType Beschrijving
Typename tekenreeks De providerspecifieke naam van het gegevenstype.
ProviderDbType int De providerspecifieke waarde die moet worden gebruikt bij het opgeven van het type van een parameter. Bijvoorbeeld SqlDbType.Money of OracleType.Blob.
Kolomgrootte long De lengte van een niet-numerieke kolom of parameter verwijst naar het maximum of de lengte die is gedefinieerd voor dit type door de provider.

Voor tekengegevens is dit de maximale of gedefinieerde lengte in eenheden, gedefinieerd door de gegevensbron. Oracle heeft het concept van het opgeven van een lengte en het opgeven van de werkelijke opslaggrootte voor bepaalde tekengegevenstypen. Hiermee definieert u alleen de lengte in eenheden voor Oracle.

Voor datum-tijdgegevenstypen is dit de lengte van de tekenreeksweergave (uitgaande van de maximaal toegestane precisie van het onderdeel fractionele seconden).

Als het gegevenstype numeriek is, is dit de bovengrens voor de maximale precisie van het gegevenstype.
CreateFormat tekenreeks Tekenreeks opmaken die aangeeft hoe u deze kolom toevoegt aan een instructie voor gegevensdefinities, zoals CREATE TABLE. Elk element in de matrix CreateParameter moet worden vertegenwoordigd door een parametermarkering in de notatietekenreeks.

Het SQL-gegevenstype DECIMAL heeft bijvoorbeeld een precisie en een schaal nodig. In dit geval is de notatietekenreeks DECIMAL({0},{1}).
CreateParameters tekenreeks De aanmaakparameters die moeten worden opgegeven bij het maken van een kolom van dit gegevenstype. Elke aanmaakparameter wordt vermeld in de tekenreeks, gescheiden door een komma in de volgorde waarin deze moeten worden opgegeven.

Het SQL-gegevenstype DECIMAL heeft bijvoorbeeld een precisie en een schaal nodig. In dit geval moeten de aanmaakparameters de tekenreeks 'precisie, schaal' bevatten.

In een tekstopdracht voor het maken van een decimale kolom met een precisie van 10 en een schaal van 2, kan de waarde van de kolom CreateFormat DECIMAL({0},{1})" zijn en is de volledige typespecificatie DECIMAL(10,2).
DataType tekenreeks De naam van het .NET Framework-type van het gegevenstype.
IsAutoincrementable bool true: waarden van dit gegevenstype kunnen automatisch worden verhoogd.

false: waarden van dit gegevenstype worden mogelijk niet automatisch verhoogd.

Houd er rekening mee dat dit alleen aangeeft of een kolom van dit gegevenstype automatisch kan worden verhoogd, niet dat alle kolommen van dit type automatisch worden verhoogd.
IsBestMatch bool true: het gegevenstype is de beste overeenkomst tussen alle gegevenstypen in het gegevensarchief en het .NET Framework-gegevenstype dat wordt aangegeven door de waarde in de kolom DataType.

false: het gegevenstype is niet de beste overeenkomst.

Voor elke set rijen waarin de waarde van de kolom DataType hetzelfde is, is de kolom IsBestMatch ingesteld op true in slechts één rij.
IsCaseSensitive bool true: het gegevenstype is een tekentype en is hoofdlettergevoelig.

false: het gegevenstype is geen tekentype of is niet hoofdlettergevoelig.
IsFixedLength bool true: kolommen van dit gegevenstype die zijn gemaakt door de DDL (Data Definition Language) hebben een vaste lengte.

false: kolommen van dit gegevenstype die door de DDL zijn gemaakt, hebben een variabele lengte.

DBNull.Value: het is niet bekend of de provider dit veld zal toewijzen aan een kolom met een vaste lengte of variabele lengte.
IsFixedPrecisionScale bool true: het gegevenstype heeft een vaste precisie en schaal.

false: het gegevenstype heeft geen vaste precisie en schaal.
IsLong bool true— Het gegevenstype bevat zeer lange gegevens; de definitie van zeer lange gegevens is providerspecifiek.

false: het gegevenstype bevat geen zeer lange gegevens.
IsNullable bool true: het gegevenstype kan null zijn.

false: het gegevenstype is niet nullable.

DBNull.Value: het is niet bekend of het gegevenstype null kan worden gebruikt.
IsSearchable bool true: het gegevenstype kan worden gebruikt in een WHERE-component met elke operator behalve het predicaat LIKE.

false: het gegevenstype kan niet worden gebruikt in een WHERE-component met een operator behalve het predicaat LIKE.
IsSearchableWithLike bool true— Het gegevenstype kan worden gebruikt met het predicaat LIKE

false: het gegevenstype kan niet worden gebruikt met het predicaat LIKE.
IsUnsigned bool true: het gegevenstype is niet ondertekend.

false: het gegevenstype is ondertekend.

DBNull.Value: niet van toepassing op gegevenstype.
Maximumschaal Korte Als de typeindicator een numeriek type is, is dit het maximum aantal cijfers dat rechts van het decimaalteken is toegestaan. Anders is dit DBNull.Value.
Minimumschaal Korte Als de typeindicator een numeriek type is, is dit het minimumaantal cijfers dat rechts van het decimaalteken is toegestaan. Anders is dit DBNull.Value.
IsConcurrencyType bool true: het gegevenstype wordt bijgewerkt door de database telkens wanneer de rij wordt gewijzigd en de waarde van de kolom verschilt van alle vorige waarden

false : het gegevenstype wordt bijgewerkt door de database telkens wanneer de rij wordt gewijzigd

DBNull.Value : de database biedt geen ondersteuning voor dit type gegevenstype
IsLiteralSupported bool true: het gegevenstype kan worden uitgedrukt als een letterlijke

false : het gegevenstype kan niet worden uitgedrukt als een letterlijke
LiteralPrefix tekenreeks Het voorvoegsel dat is toegepast op een bepaalde letterlijke gegevens.
Letterlijke achtervoegsel tekenreeks Het achtervoegsel dat is toegepast op een bepaalde letterlijke.
NativeDataType String NativeDataType is een OLE DB-specifieke kolom voor het weergeven van het OLE DB-type van het gegevenstype.

Beperkingen

Deze schemaverzameling bevat informatie over de beperkingen die worden ondersteund door de beheerde .NET Framework-provider die momenteel wordt gebruikt om verbinding te maken met de database.

ColumnName DataType Beschrijving
NaamVerzameling tekenreeks De naam van de verzameling waarop deze beperkingen van toepassing zijn.
RestrictionName tekenreeks De naam van de beperking in de verzameling.
RestrictionDefault tekenreeks Genegeerd.
RestrictionNumber int De werkelijke locatie in de verzamelingsbeperkingen waarin deze specifieke beperking valt.

Reservedwords

Deze schemaverzameling bevat informatie over de woorden die zijn gereserveerd door de database waarmee de beheerde .NET Framework-provider momenteel is verbonden.

ColumnName DataType Beschrijving
ReservedWord tekenreeks Providerspecifiek gereserveerd woord.

Zie ook