Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Em conjuntos de linhas e como valores de parâmetros, o Driver OLE DB para SQL Server representa dados SQL Server utilizando os seguintes tipos de dados definidos pelo OLE DB, reportados nas funções IColumnsInfo::GetColumnInfo e ICommandWithParameters::GetParameterInfo.
| Tipo de dados do SQL Server | Tipo de dados OLE DB |
|---|---|
| bigint | DBTYPE_I8 |
| binary | DBTYPE_BYTES |
| bit | DBTYPE_BOOL |
| char | DBTYPE_STR |
| datetime | DBTYPE_DBTIMESTAMP |
| datetime2 | DBTYPE_DBTIMESTAMP |
| decimal | DBTYPE_NUMERIC |
| float | DBTYPE_R8 |
| image | DBTYPE_BYTES |
| int | DBTYPE_I4 |
| dinheiro | DBTYPE_CY |
| Nchar | DBTYPE_WSTR |
| ntext | DBTYPE_WSTR |
| numérico | DBTYPE_NUMERIC |
| nvarchar | DBTYPE_WSTR |
| real | DBTYPE_R4 |
| smalldatetime | DBTYPE_DBTIMESTAMP |
| smallint | DBTYPE_I2 |
| dinheiro pequeno | DBTYPE_CY |
| sql_variant | DBTYPE_VARIANT, DBTYPE_SQLVARIANT |
| sysname | DBTYPE_WSTR |
| texto | DBTYPE_STR |
| timestamp | DBTYPE_BYTES |
| tinyint | DBTYPE_UI1 |
| UDT | DBTYPE_UDT |
| uniqueidentifier | DBTYPE_GUID |
| Varbinary | DBTYPE_BYTES |
| Varchar | DBTYPE_STR |
| XML | DBTYPE_XML |
O Driver OLE DB para SQL Server suporta conversões de dados solicitadas pelo consumidor, conforme mostrado na ilustração.
Os objetos sql_variant podem armazenar dados de qualquer tipo de dado SQL Server, exceto texto, ntext, imagem, varchar(max), nvarchar(max), varbinary(max), xml, timestamp e tipos de execução da linguagem comum (CLR) do Microsoft .NET Framework definidos pelo utilizador. Uma instância de dados sql_variant também não pode ter sql_variant como seu tipo de dado base subjacente. Por exemplo, a coluna pode conter valores smallint para algumas linhas, valores float para outras linhas e valores char/nchar no restante.
Observação
O tipo de dado sql_variant é semelhante ao tipo de dados Variant no Visual Basic e ao DBTYPE_VARIANT, DBTYPE_SQLVARIANT no OLEDB.
Quando sql_variant dados são obtidos como DBTYPE_VARIANT, são colocados numa estrutura VARIANTE no buffer. Mas os subtipos na estrutura VARIANT podem não corresponder aos subtipos definidos no sql_variant tipo de dato. Os dados sql_variant devem então ser obtidos como DBTYPE_SQLVARIANT para que todos os subtipos coincidam.
DBTYPE_SQLVARIANT Tipo de Dados
Para suportar o tipo de dado sql_variant , o Driver OLE DB para SQL Server expõe um tipo de dado específico do fornecedor chamado DBTYPE_SQLVARIANT. Quando sql_variant dados são recolhidos como DBTYPE_SQLVARIANT, são armazenados numa estrutura SSVARIANT específica para cada fornecedor. A estrutura SSVARIANT contém todos os subtipos que correspondem aos subtipos do sql_variant tipo de dados.
A propriedade da sessão SSPROP_ALLOWNATIVEVARIANT também deve ser definida como TRUE.
Provider-Specific Propriedade SSPROP_ALLOWNATIVEVARIANT
Na obtenção de dados, pode especificar explicitamente que tipo de dado deve ser devolvido para uma coluna ou para um parâmetro. O IColumnsInfo também pode ser usado para obter a informação da coluna e usá-la para fazer a ligação. Quando o IColumnsInfo é usado para obter informação de colunas para fins de ligação, se a propriedade SSPROP_ALLOWNATIVEVARIANT sessão for FALSE (valor padrão), DBTYPE_VARIANT é devolvido para sql_variant colunas. Se SSPROP_ALLOWNATIVEVARIANT propriedade for FALSA, DBTYPE_SQLVARIANT não é suportado. Se SSPROP_ALLOWNATIVEVARIANT propriedade estiver definida como TRUE, o tipo de coluna é devolvido como DBTYPE_SQLVARIANT, caso em que o buffer manterá a estrutura SSVARIANT. Ao obter sql_variant dados como DBTYPE_SQLVARIANT, a propriedade da sessão SSPROP_ALLOWNATIVEVARIANT deve ser definida como TRUE.
SSPROP_ALLOWNATIVEVARIANT propriedade faz parte do conjunto específico de propriedades de DBPROPSET_SQLSERVERSESSION do fornecedor e é uma propriedade de sessão.
DBTYPE_VARIANT aplica-se a todos os outros fornecedores OLE DB.
SSPROP_ALLOWNATIVEVARIANT
SSPROP_ALLOWNATIVEVARIANT é uma propriedade de sessão e faz parte de DBPROPSET_SQLSERVERSESSION conjunto de propriedades.
| Propriedade | Description |
|---|---|
| SSPROP_ALLOWNATIVEVARIANT | Tipo: VT_BOOL R/W: Ler/Escrever Padrão: VARIANT_FALSE Descrição: Determina se os dados recolhidos são DBTYPE_VARIANT ou DBTYPE_SQLVARIANT. VARIANT_TRUE: O tipo de coluna é devolvido como DBTYPE_SQLVARIANT caso em que o buffer manterá a estrutura SSVARIANT. VARIANT_FALSE: O tipo de coluna é devolvido como DBTYPE_VARIANT e o buffer terá estrutura VARIANTE. |