Metadados - Data, Hora e Conjuntos de Linhas de Esquema
Este tópico fornece informações sobre o conjunto de linhas COLUMNS e PROCEDURE_PARAMETERS conjunto de linhas. Essas informações estão relacionadas aos aprimoramentos de data e hora do OLE DB introduzidos no SQL Server 2008 (10.0.x).
Conjunto de linhas COLUMNS
Os seguintes valores de coluna são retornados para tipos de data/hora:
Tipo de coluna | DATA_TYPE | COLUMN_FLAGS, DBCOLUMNFLAGS_SS_ISVARIABLESCALE | DATETIME_PRECISION |
---|---|---|---|
data | DBTYPE_DBDATE | Limpar | 0 |
Hora | DBTYPE_DBTIME2 | Conjunto | 0..7 |
PequenoDateTime | DBTYPE_DBTIMESTAMP | Limpar | 0 |
datetime | DBTYPE_DBTIMESTAMP | Limpar | 3 |
datetime2 | DBTYPE_DBTIMESTAMP | Conjunto | 0..7 |
datetimeoffset | DBTYPE_DBTIMESTAMPOFFSET | Conjunto | 0..7 |
Em COLUMN_FLAGS, DBCOLUMNFLAGS_ISFIXEDLENGTH é sempre verdadeiro para tipos de data/hora e os seguintes sinalizadores são sempre falsos:
DBCOLUMNFLAGS_CACHEDEFERRED
DBCOLUMNFLAGS_ISBOOKMARK
DBCOLUMNFLAGS_ISCHAPTER
DBCOLUMNFLAGS_ISLONG
DBCOLUMNFLAGS_ISROWID
DBCOLUMNFLAGS_ISROWVER
DBCOLUMNFLAGS_MAYDEFER
Os sinalizadores restantes (DBCOLUMNFLAGS_ISNULLABLE, DBCOLUMNFLAGS_MAYBENULL, DBCOLUMNFLAGS_WRITE e DBCOLUMNFLAGS_WRITEUNKNOWN) podem ser definidos, dependendo de como a coluna é definida.
Um novo sinalizador, DBCOLUMNFLAGS_SS_ISVARIABLESCALE, é fornecido em COLUMN_FLAGS para permitir que um aplicativo determine o tipo de servidor de colunas onde DATA_TYPE é DBTYPE_DBTIMESTAMP. DATETIME_PRECISION também deve ser usado para identificar o tipo de servidor.
DBCOLUMNFLAGS_SS_ISVARIABLESCALE só é válido quando conectado a um servidor que executa o SQL Server 2008 (10.0.x) e versões posteriores. DBCOLUMNFLAGS_SS_ISFIXEDSCALE é indefinido quando conectado a servidores de nível inferior.
PROCEDURE_PARAMETERS conjunto de linhas
DATA_TYPE contém os mesmos valores que o conjunto de linhas do esquema COLUMNS e TYPE_NAME contém o tipo de servidor.
Uma nova coluna, SS_DATETIME_PRECISION, foi adicionada para retornar a precisão do tipo como na coluna DATETIME_PRECISION, semelhante ao conjunto de linhas COLUMNS.
PROVIDER_TYPES conjunto de linhas
As seguintes linhas são retornadas para tipos de data/hora:
Tipo -> Coluna |
data | Hora | PequenoDateTime | datetime | datetime2 | datetimeoffset |
---|---|---|---|---|---|---|
TYPE_NAME | data | Hora | PequenoDateTime | datetime | datetime2 | datetimeoffset |
DATA_TYPE | DBTYPE_DBDATE | DBTYPE_DBTIME2 | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMPOFFSET |
COLUMN_SIZE | 10 | 16 | 16 | 23 | 27 | 34 |
LITERAL_PREFIX | ' | ' | ' | ' | ' | ' |
LITERAL_SUFFIX | ' | ' | ' | ' | ' | ' |
CREATE_PARAMS | NULO | Escala | NULO | NULO | Escala | Escala |
IS_NULLABLE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE |
CASE_SENSITIVE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
PESQUISÁVEL | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE |
UNSIGNED_ATTRIBUTE | NULO | NULO | NULO | NULO | NULO | NULO |
FIXED_PREC_SCALE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
AUTO_UNIQUE_VALUE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
LOCAL_TYPE_NAME | data | Hora | PequenoDateTime | datetime | datetime2 | datetimeoffset |
MINIMUM_SCALE | NULO | 0 | NULO | NULO | 0 | 0 |
MAXIMUM_SCALE | NULO | 7 | NULO | NULO | 7 | 7 |
GUID | NULO | NULO | NULO | NULO | NULO | NULO |
TYPELIB | NULO | NULO | NULO | NULO | NULO | NULO |
VERSÃO | NULO | NULO | NULO | NULO | NULO | NULO |
IS_LONG | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
BEST_MATCH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE a menos que uma das seguintes situações seja verdadeira: O cliente está conectado a um servidor de nível inferior. A propriedade de conexão de compatibilidade de tipo de dados especifica um nível de compatibilidade igual a 80. |
VARIANT_TRUE a menos que uma das seguintes situações seja verdadeira: O cliente está conectado a um servidor de nível inferior. A propriedade de conexão de compatibilidade de tipo de dados especifica um nível de compatibilidade igual a 80. |
VARIANT_TRUE |
IS_FIXEDLENGTH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE |
O OLE DB define apenas MINIMUM_SCALE e MAXIMUM_SCALE para tipos numéricos e decimais, portanto, o uso dessas colunas pelo Driver OLE DB para SQL Server para time, datetime2 e datetimeoffset não é padrão.