Compartilhar via


Estrutura SSVARIANT no SQL Server Native Client

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

A estrutura SSVARIANT , que é definida em sqlncli.h, corresponde a um valor DBTYPE_SQLVARIANT no provedor OLEDB do SQL Server Native Client.

SSVARIANT é uma união distinta. Dependendo do valor do membro vt, o consumidor pode determinar qual membro deve ser lido. Os valores vt correspondem aos tipos de dados do SQL Server. Portanto, a estrutura SSVARIANT pode manter qualquer tipo do SQL Server. Para obter mais informações sobre a estrutura de dados para tipos OLE DB padrão, confira Indicadores de tipo.

Comentários

Quando DataTypeCompat==80, vários subtipos SSVARIANT se tornam cadeias de caracteres. Por exemplo, os seguintes valores vt serão exibidos em SSVARIANT como VT_SS_WVARSTRING:

  • VT_SS_DATETIMEOFFSET

  • VT_SS_DATETIME2

  • VT_SS_TIME2

  • VT_SS_DATE

Quando DateTypeCompat == 0, estes tipos aparecerão no seu formulário nativo.

Para obter mais informações sobre SSPROP_INIT_DATATYPECOMPATIBILITY, consulte Usando palavras-chave de cadeia de conexão com SQL Server Native Client.

O arquivo sqlncli.h contém macros de acesso variante que simplificam a desreferenciação dos tipos de membro na estrutura SSVARIANT . Um exemplo é V_SS_DATETIMEOFFSET que você pode usar da seguinte maneira:

memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);  
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;  

Para obter o conjunto completo de macros de acesso para cada membro da estrutura SSVARIANT , consulte o arquivo sqlncli.hi.

A seguinte tabela descreve os membros da estrutura SSVARIANT:

Membro Indicador de tipo OLE DB Tipo de dados OLE DB C valor vt Comentários
vt SSVARTYPE Especifica o tipo de valor contido no struct SSVARIANT.
bTinyIntVal DBTYPE_UI1 BYTE VT_SS_UI1 Dá suporte ao tipo de dados tinyintSQL Server.
sShortIntVal DBTYPE_I2 SHORT VT_SS_I2 Dá suporte ao tipo de dados smallintSQL Server.
lIntVal DBTYPE_I4 LONG VT_SS_I4 Dá suporte ao tipo de dados intSQL Server.
llBigIntVal DBTYPE_I8 LARGE_INTEGER VT_SS_I8 Dá suporte ao tipo de dados bigintSQL Server.
fltRealVal DBTYPE_R4 float VT_SS_R4 Dá suporte ao tipo de dados realSQL Server.
dblFloatVal DBTYPE_R8 double VT_SS_R8 Dá suporte ao tipo de dados floatSQL Server.
cyMoneyVal DBTYPE_CY LARGE_INTEGER VT_SS_MONEY VT_SS_SMALLMONEY Dá suporte aos tipos de dados money e smallmoneySQL Server.
fBitVal DBTYPE_BOOL VARIANT_BOOL VT_SS_BIT Dá suporte ao tipo de dados bitSQL Server.
rgbGuidVal DBTYPE_GUID GUID VT_SS_GUID Dá suporte ao tipo de dados uniqueidentifierSQL Server.
numNumericVal DBTYPE_NUMERIC DB_NUMERIC VT_SS_NUMERIC Dá suporte ao tipo de dados numericSQL Server.
dDateVal DBTYPE_DATE DBDATE VT_SS_DATE Dá suporte ao tipo de dados dateSQL Server.
tsDateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 Dá suporte aos tipos de dados smalldatetime, datetime e datetime2SQL Server.
Time2Val DBTYPE_DBTIME2 DBTIME2 VT_SS_TIME2 Dá suporte ao tipo de dados timeSQL Server.

Inclui os seguintes membros:

tTime2Val (DBTIME2)

bScale (BYTE) Especifica a escala para o valor tTime2Val.
DateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_DATETIME2 Dá suporte ao tipo de dados datetime2SQL Server.

Inclui os seguintes membros:

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Especifica a escala para o valor tsDataTimeVal.
DateTimeOffsetVal DBTYPE_DBTIMESTAMPOFSET DBTIMESTAMPOFFSET VT_SS_DATETIMEOFFSET Dá suporte ao tipo de dados datetimeoffsetSQL Server.

Inclui os seguintes membros:

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Especifica a escala para o valor tsoDateTimeOffsetVal.
NCharVal Não existe um indicador de tipo OLE DB correspondente. struct _NCharVal VT_SS_WVARSTRING,

VT_SS_WSTRING
Dá suporte aos tipos de dados nchar e nvarcharSQL Server.

Inclui os seguintes membros:

sActualLength (SHORT) especifica o comprimento real da cadeia de caracteres para a qual pwchNCharVal aponta. Não inclui o zero final.

sMaxLength (SHORT) especifica o comprimento máximo da cadeia de caracteres para a qual pwchNCharVal aponta.

pwchNCharVal (WCHAR *) Ponteiro para a cadeia de caracteres.

Membros não usados: rgbReserved, dwReserved e pwchReserved.
CharVal Não existe um indicador de tipo OLE DB correspondente. struct _CharVal VT_SS_STRING,

VT_SS_VARSTRING
Dá suporte aos tipos de dados char e varcharSQL Server.

Inclui os seguintes membros:

sActualLength (SHORT) especifica o comprimento real da cadeia de caracteres para a qual pchCharVal aponta. Não inclui o zero final.

sMaxLength (SHORT) especifica o comprimento máximo da cadeia de caracteres para a qual pchCharVal aponta.

pchCharVal (CHAR *) Ponteiro para a cadeia de caracteres.

Membros não usados:

rgbReserved, dwReserved e pwchReserved.
BinaryVal Não existe um indicador de tipo OLE DB correspondente. struct _BinaryVal VT_SS_VARBINARY,

VT_SS_BINARY
Dá suporte aos tipos de dados binary e varbinarySQL Server.

Inclui os seguintes membros:

sActualLength (SHORT) especifica o comprimento real dos dados para os quais prgbBinaryVal aponta.

sMaxLength (SHORT) especifica o comprimento máximo dos dados para os quais prgbBinaryVal aponta.

prgbBinaryVal (BYTE *) Ponteiro para os dados binários.

Membro não usado: dwReserved.
UnknownType UNUSED UNUSED UNUSED UNUSED
BLOBType UNUSED UNUSED UNUSED UNUSED

Confira também

Tipos de dados (OLE DB)