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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de