Colecciones de esquemas comunes (ADO.NET)

Actualización: November 2007

Las colecciones de esquemas comunes son las colecciones de esquemas que implementa cada uno de los proveedores administrados de .NET Framework. Puede consultar un proveedor administrado de .NET Framework para determinar la lista de colecciones de esquemas admitidas mediante la llamada al método GetSchema sin argumentos, o con el nombre de colección de esquemas "MetaDataCollections". Esto devolverá una DataTable con una lista de colecciones de esquemas admitidas, el número de restricciones que admite cada una y el número de partes de identificador que emplean. Estas colecciones describen todas las columnas necesarias. Los proveedores pueden agregar más columnas si lo desean. Por ejemplo, SqlClient y OracleClient agregan ParameterName a la colección con restricciones.

Si un proveedor no puede determinar el valor de una columna necesaria, se devolverá NULL.

Para obtener más información acerca del uso de los métodos GetSchema, vea GetSchema y colecciones de esquemas (ADO.NET).

MetaDataCollections

Esta colección de esquemas expone información acerca de las colecciones de esquemas que admite el proveedor administrado de .NET Framework que se utiliza actualmente para conectarse a la base de datos.

Nombre de columna

Tipo de datos

Descripción

CollectionName

string

El nombre de la colección que se pasa al método GetSchema para devolver la colección.

NumberOfRestriction

int

El número de restricciones que se pueden especificar para la colección.

NumberOfIdentifierParts

int

El número de partes del identificador compuesto y nombre del objeto de base de datos. Por ejemplo, en SQL Server, sería 3 para las tablas y 4 para las columnas. En Oracle, sería 2 para las tablas y 3 para las columnas.

DataSourceInformation

Esta colección de esquemas expone información acerca del origen de datos al que actualmente está conectado el proveedor administrado de .NET Framework.

Nombre de columna

Tipo de datos

Descripción

CompositeIdentifierSeparatorPattern

string

La expresión regular para hacer corresponder los separadores compuestos en un identificador compuesto. Por ejemplo, “\”. (en SQL Server) o “@|\”. (en Oracle).

Un identificador compuesto es normalmente lo que se utiliza en un nombre de objeto de base de datos, por ejemplo: pubs.dbo.authors o pubs@dbo.authors.

En SQL Server, utilice la expresión regular “\”. En OracleClient, utilice “@|\”.

En ODBC, utilice Catalog_name_seperator.

En OLE DB, utilice DBLITERAL_CATALOG_SEPARATOR o DBLITERAL_SCHEMA_SEPARATOR.

DataSourceProductName

string

El nombre del producto al que tiene acceso el proveedor, por ejemplo, "Oracle" o "SQLServer".

DataSourceProductVersion

string

Indica la versión del producto al que tiene acceso el proveedor, en el formato nativo de los orígenes de datos y no en el formato de Microsoft.

En algunos casos, DataSourceProductVersion y DataSourceProductVersionNormalized tendrán el mismo valor. En el caso de OLE DB y ODBC, serán siempre iguales dado que se asignan a la misma llamada de función en la API nativa subyacente.

DataSourceProductVersionNormalized

string

Una versión normalizada del origen de datos, de forma que se puede comparar con String.Compare(). Su formato es coherente con todas las versiones del proveedor para evitar que la versión 10 se clasifique entre la versión 1 y la versión 2.

Por ejemplo, el proveedor de Oracle utiliza un formato de “nn.nn.nn.nn.nn” en su versión normalizada, lo que ocasiona que un origen de datos Oracle 8i devuelva “08.01.07.04.01”. SQL Server utiliza el formato típico de Microsoft “nn.nn.nnnn”.

En algunos casos, DataSourceProductVersion y DataSourceProductVersionNormalized tendrán el mismo valor. En el caso de OLE DB y ODBC, serán siempre iguales dado que se asignan a la misma llamada de función en la API nativa subyacente.

GroupByBehavior

GroupByBehavior

Especifica la relación entre las columnas de una cláusula GROUP BY y las columnas no agregadas de la lista de selección.

IdentifierPattern

string

Una expresión regular que crea una correspondencia con un identificador y que tiene un valor de correspondencia del identificador. Por ejemplo “[A-Za-z0-9_#$]”.

IdentifierCase

IdentifierCase

Indica si los identificadores que no se incluyen entre comillas se tratan o no como con diferenciación entre mayúsculas y minúsculas.

OrderByColumnsInSelect

bool

Especifica si las columnas de una cláusula ORDER BY deben estar en la lista de selección. Un valor de true indica que es necesario que estén en la lista de selección; un valor de false indica que no es necesario que estén en la lista de selección.

ParameterMarkerFormat

string

Una cadena de formato que representa cómo dar formato a un parámetro.

Si el origen de datos admite parámetros con nombre, el primer marcador de posición de esta cadena debe estar donde se debe dar formato al nombre del parámetro.

Por ejemplo, si el origen de datos espera que se asigne un nombre a los parámetros y que sean precedidos con ‘:’, esto sería “:{0}”. Cuando se da formato con un nombre de parámetro de “p1”, la cadena resultante es “:p1”.

Si el origen de datos espera que los parámetros sean precedidos con el carácter ‘@’, pero los nombres ya lo incluyen, esto sería ‘{0}’, y el resultado de dar formato a un parámetro llamado “@p1” simplemente sería “@p1”.

En los orígenes de datos que no esperan parámetros con nombre y sí el uso del carácter ‘?’, la cadena de formato se puede especificar como simplemente ‘?’, con lo que se omitiría el nombre del parámetro. En OLE DB, devolvemos ‘?’.

ParameterMarkerPattern

string

Una expresión regular que crea una correspondencia con un marcador de parámetro. Tendrá un valor de correspondencia del nombre del parámetro, si lo hay.

Por ejemplo, si se admiten parámetros con nombre con un carácter de introducción ‘@’ que se incluirá en el nombre del parámetro, esto sería: “(@[A-Za-z0-9_$#]*)”.

Sin embargo, si se admiten parámetros con nombre con ‘:’ como carácter de introducción y no forma parte del nombre del parámetro, esto sería: “:([A-Za-z0-9_$#]*)”.

Naturalmente, si el origen de datos no admite parámetros con nombre, esto sería simplemente “?”.

ParameterNameMaxLength

int

La longitud máxima del nombre del parámetro en caracteres. Visual Studio espera que si se admiten nombres de parámetros, el valor mínimo de la longitud máxima sea 30 caracteres.

Si el origen de datos no admite parámetros con nombre, esta propiedad devuelve cero.

ParameterNamePattern

string

Una expresión regular que crea una correspondencia con los nombres de parámetros válidos. Según el origen de datos, existen diferentes reglas respecto a los caracteres que se pueden utilizar en los nombres de parámetros.

Visual Studio espera que si se admiten nombres de parámetros, los caracteres "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" son el conjunto mínimo de caracteres admitidos que son válidos en nombres de parámetros.

QuotedIdentifierPattern

string

Una expresión regular que crea una correspondencia con un identificador incluido entre comillas y que tiene un valor de correspondencia del propio identificador sin las comillas. Por ejemplo, si el origen de datos ha utilizado comillas dobles para identificar identificadores incluidos entre comillas, sería de esta manera: "(([^\"]|\"\")*)".

QuotedIdentifierCase

IdentifierCase

Indica si los identificadores incluidos entre comillas se tratan o no como con diferenciación entre mayúsculas y minúsculas.

StatementSeparatorPattern

string

Una expresión regular que crea una correspondencia con el separador de instrucciones.

StringLiteralPattern

string

Una expresión regular que crea una correspondencia con un literal de cadena y que tiene un valor de correspondencia del propio literal. Por ejemplo, si el origen de datos ha utilizado comillas sencillas para identificar cadenas, sería de esta manera: "('([^']|'')*')"'

SupportedJoinOperators

SupportedJoinOperators

Especifica los tipos de instrucciones de unión SQL que admite el origen de datos.

DataTypes

Esta colección de esquemas expone información acerca de los tipos de datos que admite la base de datos a la que está conectado actualmente el proveedor de datos de .NET Framework.

Nombre de columna

Tipo de datos

Descripción

TypeName

string

El nombre del tipo de datos específico del proveedor.

ProviderDbType

int

El valor del tipo específico del proveedor que se debe utilizar al especificar el tipo de un parámetro. Por ejemplo, SqlDbType.Money o OracleType.Blob.

ColumnSize

long

La longitud de una columna o parámetro no numérico hace referencia a la longitud máxima o a la longitud que ha definido el proveedor para este tipo.

En datos de caracteres, es la longitud máxima o definida en unidades por el origen de datos. Oracle tiene el concepto de especificar una longitud y, luego, el tamaño de almacenamiento real en algunos tipos de datos de caracteres. Esto sólo define la longitud en unidades en Oracle.

En los tipos de datos de fecha y hora, es la longitud de la representación de cadena (suponiendo la precisión máxima permitida del componente de segundos decimales).

Si el tipo de datos es numérico, es el límite superior en la precisión máxima del tipo de datos.

CreateFormat

string

La cadena de formato que representa cómo agregar esta columna a una instrucción de definición de datos, como CREATE TABLE. Cada elemento de la matriz CreateParameter se debe representar con un “marcador de parámetro” en la cadena de formato.

Por ejemplo, el tipo de datos SQL DECIMAL necesita una precisión y una escala. En este caso, la cadena de formato sería “DECIMAL({0},{1})”.

CreateParameters

string

Los parámetros de creación que se deben especificar al crear una columna de este tipo de datos. Cada parámetro de creación se muestra en la cadena, separado por una coma en el orden en que se suministran.

Por ejemplo, el tipo de datos SQL DECIMAL necesita una precisión y una escala. En este caso, los parámetros de creación deben contener la cadena “precisión, escala”.

En un comando de texto para crear una columna DECIMAL con una precisión de 10 y una escala de 2, el valor de la columna CreateFormat podría ser DECIMAL({0},{1})” y la especificación completa del tipo sería DECIMAL(10,2).

Tipo de datos

string

El nombre del tipo de datos de .NET Framework.

IsAutoincrementable

bool

true: los valores de este tipo de datos pueden ser de incremento automático.

false: los valores de este tipo de datos podrían no ser de incremento automático.

Tenga en cuenta que esto simplemente indica si una columna de este tipo de datos podría ser de incremento automático, no que todas las columnas de este tipo sean de incremento automático.

IsBestMatch

bool

true: el tipo de datos es la mejor coincidencia entre todos los tipos de datos del almacén de datos y el tipo de datos de .NET Framework que indica el valor de la columna Tipo de datos.

false: el tipo de datos no es la mejor coincidencia.

En cada conjunto de filas en las que el valor de la columna Tipo de datos sea el mismo, la columna IsBestMatch sólo se establece en true en una fila.

IsCaseSensitive

bool

true: el tipo de datos es de tipo carácter y distingue entre mayúsculas y minúsculas.

false: el tipo de datos no es de tipo carácter y no distingue entre mayúsculas y minúsculas.

IsFixedLength

bool

true: las columnas de este tipo de datos creadas con el lenguaje de definición de datos (DDL) serán de longitud fija.

false: las columnas de este tipo de datos creadas con la DDL serán de longitud variable.

DBNull.Value: no se sabe si el proveedor asignará este campo con una columna de longitud fija o variable.

IsFixedPrecisionScale

bool

true: el tipo de datos tiene una precisión y escala fijas.

false: el tipo de datos no tiene una precisión y escala fijas.

IsLong

bool

true: el tipo de datos contiene datos muy largos; la definición de datos muy largos es específica del proveedor.

false: el tipo de datos no contiene datos muy largos.

IsNullable

bool

true: el tipo de datos es anulable.

false: el tipo de datos no es anulable.

DBNull.Value: no se sabe si el tipo de datos es anulable.

IsSearchable

bool

true: el tipo de datos se puede utilizar en una cláusula WHERE con cualquier operador, excepto con el predicado LIKE.

false: el tipo de datos no se puede utilizar en una cláusula WHERE con ningún operador, excepto con el predicado LIKE.

IsSearchableWithLike

bool

true: el tipo de datos se puede utilizar con el predicado LIKE

false: el tipo de datos no se puede utilizar con el predicado LIKE

IsUnsigned

bool

true: el tipo de datos es sin signo.

false: el tipo de datos es con signo.

DBNull.Value: no es aplicable al tipo de datos.

MaximumScale

short

Si el indicador de tipos es un tipo numérico, es el número máximo de dígitos permitidos a la derecha del separador decimal. De lo contrario, es DBNull.Value.

MinimumScale

short

Si el indicador de tipos es un tipo numérico, es el número mínimo de dígitos permitidos a la derecha del separador decimal. De lo contrario, es DBNull.Value.

IsConcurrencyType

bool

true: la base de datos actualiza el tipo de datos cada vez que cambia la fila y el valor de la columna es diferente de todos los valores anteriores

false: la base de datos no actualiza el tipo de datos cada vez que cambia la fila

DBNull.Value: la base de datos no admite este tipo de datos

IsLiteralsSupported

bool

true: el tipo de datos se puede expresar como un literal

false: el tipo de datos no se puede expresar como un literal

LiteralPrefix

string

El prefijo aplicado a un literal dado.

LitteralSuffix

string

El sufijo aplicado a un literal dado.

NativeDataType

Cadena

NativeDataType es una columna específica de OLE DB para la exposición del tipo de datos de OLE DB.

Restricciones

Esta colección de esquemas expone información acerca de las restricciones que admite el proveedor administrado de .NET Framework que está actualmente conectado a la base de datos.

Nombre de columna

Descripción

CollectionName

string

El nombre de la colección a la que se aplican estas restricciones.

RestrictionName

string

El nombre de la restricción en la colección.

RestrictionDefault

string

Se omite.

RestrictionNumber

int

La ubicación real de las restricciones de colecciones en la que se encuentra esta restricción en particular.

ReservedWords

Esta colección de esquemas expone información acerca de las palabras que reserva la base de datos a la que está conectado actualmente el proveedor de datos de .NET Framework.

Nombre de columna

Tipo de datos

Descripción

ReservedWords

string

Palabras reservadas específicas del proveedor.

Vea también

Conceptos

GetSchema y colecciones de esquemas (ADO.NET)

Otros recursos

Recuperar información de esquema de la base de datos (ADO.NET)