Partilhar via


Estrutura SSVARIANT

A estrutura SSVARIANT, 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 a tipos de dados do SQL Server. Portanto, a estrutura SSVARIANT pode hospedar qualquer tipo do SQL Server. Para obter mais informações sobre a estrutura de dados para tipos OLE DB padrão, consulte Indicadores de tipo.

Comentários

Quando DataTypeCompat==80, vários subtipos SSVARIANT se tornam cadeias de caracteres. Por exemplo, os valores vt seguintes aparecerão 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 da cadeia de conexão com o SQL Server Native Client.

O arquivo sqlncli.h contém macros de acesso variantes que são simplificados, eliminando a referência 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 tabela a seguir 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 na estrutura SSVARIANT.

bTinyIntVal

DBTYPE_UI1

BYTE

VT_SS_UI1

Dá suporte ao tipo de dados tinyint do SQL Server.

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

Dá suporte ao tipo de dados smallint do SQL Server.

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

Dá suporte ao tipo de dados int do SQL Server.

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

Dá suporte ao tipo de dados bigint do SQL Server.

fltRealVal

DBTYPE_R4

float

VT_SS_R4

Dá suporte ao tipo de dados real do SQL Server.

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

Dá suporte ao tipo de dados float do SQL Server.

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

Dá suporte aos tipos de dados money e smallmoney do SQL Server.

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

Dá suporte ao tipo de dados bit do SQL Server.

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

Dá suporte ao tipo de dados uniqueidentifier do SQL Server.

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

Dá suporte ao tipo de dados numeric do SQL Server.

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

Dá suporte ao tipo de dados date do SQL Server.

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

Dá suporte aos tipos de dados smalldatetime, datetime e datetime2 do SQL Server.

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

Dá suporte ao tipo de dados time do SQL 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 datetime2 do SQL 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 datetimeoffset do SQL 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 nvarchar do SQL Server.

Inclui os seguintes membros:

sActualLength (SHORT) Especifica o comprimento real da cadeia de caracteres apontada por pwchNCharVal. Não inclui o zero final.

sMaxLength (SHORT) Especifica o comprimento máximo da cadeia de caracteres apontada por pwchNCharVal.

pwchNCharVal (WCHAR *) Ponteiro que indica 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 varchar do SQL Server.

Inclui os seguintes membros:

sActualLength (SHORT) Especifica o comprimento real da cadeia de caracteres apontada por pchCharVal. Não inclui o zero final.

sMaxLength (SHORT) Especifica o comprimento máximo da cadeia de caracteres apontada por pchCharVal.

pchCharVal (CHAR *) Ponteiro que indica 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 varbinary do SQL Server.

Inclui os seguintes membros:

sActualLength (SHORT) Especifica o comprimento real dos dados apontados por prgbBinaryVal.

sMaxLength (SHORT) Especifica o comprimento máximo dos dados apontados por prgbBinaryVal.

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

Membro não usado: dwReserved.

UnknownType

UNUSED

UNUSED

UNUSED

UNUSED

BLOBType

UNUSED

UNUSED

UNUSED

UNUSED

Consulte também

Conceitos