Compartilhar via


Mapeamento do tipo de dados em ITableDefinition

Ao criar tabelas usando a função ITableDefinition::CreateTable, o consumidor do provedor de dados OLE DB do SQL Server Native Client pode especificar tipos de dados do SQL Server no membro pwszTypeName da matriz DBCOLUMNDESC passada. Caso o consumidor especifique o tipo de dados de uma coluna por nome, o mapeamento do tipo de dados OLE DB, representado pelo membro wType da estrutura DBCOLUMNDESC, é ignorado.

Ao especificar novos tipos de dados de coluna com tipos de dados OLE DB usando o membro wType da a estrutura DBCOLUMNDESC, o provedor OLE DB do SQL Server Native Client mapeia os tipos de dados OLE DB da seguinte forma.

Tipo de dados OLE DB

SQL Server

tipo de dados

Informações adicionais

DBTYPE_BOOL

bit

DBTYPE_BYTES

binary, varbinary, image ou varbinary(max)

O provedor OLE DB do SQL Server Native Client inspeciona o membro ulColumnSize da estrutura DBCOLUMNDESC. Com base no valor e na versão da instância do SQL Server, o provedor OLE DB do SQL Server Native Client mapeia o tipo para image.

Caso o valor de ulColumnSize seja menor que o comprimento máximo de uma coluna de tipo de dados binary, o provedor OLE DB do SQL Server Native Client inspeciona o membro rgPropertySets de DBCOLUMNDESC. Caso DBPROP_COL_FIXEDLENGTH seja VARIANT_TRUE, o provedor OLE DB do SQL Server Native Client mapeia o tipo para binary. Caso o valor da propriedade seja VARIANT_FALSE, o provedor OLE DB do SQL Server Native Client mapeia o tipo para varbinary. Em ambos os casos, o membro ulColumnSize de DBCOLUMNDESC determina a largura da coluna do SQL Server criada.

DBTYPE_CY

money

DBTYPE_DBTIMESTAMP

datetime

DBTYPE_GUID

uniqueidentifier

DBTYPE_I2

smallint

DBTYPE_I4

int

DBTYPE_NUMERIC

numeric

O provedor OLE DB do SQL Server Native Client inspeciona os membros bPrecision e bScale de DBCOLUMDESC para determinar a precisão e a escala da coluna numeric.

DBTYPE_R4

real

DBTYPE_R8

float

DBTYPE_STR

char, varchar, text ou varchar(max)

O provedor OLE DB do SQL Server Native Client inspeciona o membro ulColumnSize da estrutura DBCOLUMNDESC. Com base no valor e na versão da instância do SQL Server, o provedor OLE DB do SQL Server Native Client mapeia o tipo para text.

Caso o valor de ulColumnSize seja menor que o comprimento máximo de uma coluna de tipo de dados de caracteres multibyte, o provedor OLE DB do SQL Server Native Client inspeciona o membro rgPropertySets de DBCOLUMNDESC. Caso DBPROP_COL_FIXEDLENGTH seja VARIANT_TRUE, o provedor OLE DB do SQL Server Native Client mapeia o tipo para char. Caso o valor da propriedade seja VARIANT_FALSE, o provedor OLE DB do SQL Server Native Client mapeia o tipo para varchar. Em ambos os casos, o membro ulColumnSize de DBCOLUMNDESC determina a largura da coluna SQL Server criada.

DBTYPE_UDT

UDT

As seguintes informações são usadas em estruturas DBCOLUMNDESC por ITableDefinition::CreateTable quando as colunas UDT são obrigatórias:

  • pwSzTypeName é ignorado.

  • rgPropertySets deve incluir uma propriedade DBPROPSET_SQLSERVERCOLUMN definida conforme a descrição na seção de DBPROPSET_SQLSERVERCOLUMN, em Usando tipos definidos pelo usuário.

DBTYPE_UI1

tinyint

DBTYPE_WSTR

nchar, nvarchar, ntext ou nvarchar(max)

O provedor OLE DB do SQL Server Native Client inspeciona o membro ulColumnSize da estrutura DBCOLUMNDESC. Com base no valor, o provedor de dados OLE DB do SQL Server Native Client mapeia o tipo para ntext.

Caso o valor de ulColumnSize seja menor que o comprimento máximo de uma coluna de tipo de dados de caractere Unicode, o provedor OLE DB do SQL Server Native Client inspeciona o membro rgPropertySets de DBCOLUMNDESC. Caso DBPROP_COL_FIXEDLENGTH seja VARIANT_TRUE, o provedor OLE DB do SQL Server Native Client mapeia o tipo para nchar. Caso o valor da propriedade seja VARIANT_FALSE, o provedor OLE DB do SQL Server Native Client mapeia o tipo para nvarchar. Em ambos os casos, o membro ulColumnSize de DBCOLUMNDESC determina a largura da coluna SQL Server criada.

DBTYPE_XML

XML

ObservaçãoObservação

Ao criar uma nova tabela, o provedor OLE DB do SQL Server Native Client mapeia apenas os valores de enumeração do tipo de dados OLE DB especificados na tabela anterior. Tentar criar uma tabela com uma coluna de qualquer outro tipo de dados OLE DB gera um erro.

Consulte também

Conceitos