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 |