Estructura SSVARIANT en SQL Server Native Client
Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
La estructura SSVARIANT, que se define en sqlncli.h, corresponde a un valor de DBTYPE_SQLVARIANT en el proveedor OLEDB de SQL Server Native Client.
SSVARIANT es una unión de discriminación. Según el valor del miembro vt, el consumidor puede determinar qué miembro tiene que leerse. Los valores de vt se corresponden con tipos de datos de SQL Server. Por tanto, la estructura SSVARIANT puede contener cualquier tipo de SQL Server. Para más información sobre la estructura de datos de los tipos de OLE DB estándar, consulte Indicadores de tipo.
Observaciones
Cuando DataTypeCompat==80, varios subtipos SSVARIANT se convierten en cadenas. Por ejemplo, los siguientes valores de vt se mostrarán en SSVARIANT como VT_SS_WVARSTRING:
VT_SS_DATETIMEOFFSET
VT_SS_DATETIME2
VT_SS_TIME2
VT_SS_DATE
Cuando DateTypeCompat == 0, estos tipos se mostrarán en su forma nativa.
Para obtener más información sobre SSPROP_INIT_DATATYPECOMPATIBILITY, consulte Uso de palabras clave de cadena de conexión con SQL Server Native Client.
El archivo sqlncli.h contiene macros de acceso variant que simplifican la desreferenciación de los tipos de miembro en la estructura SSVARIANT . Un ejemplo sería V_SS_DATETIMEOFFSET, que puede utilizarse tal y como se indica a continuación:
memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;
Para obtener el conjunto completo de macros de acceso para cada miembro de la estructura SSVARIANT , consulte el archivo sqlncli.hi.
En la tabla siguiente, se describen los miembros de la estructura SSVARIANT:
Member | Indicador de tipo OLE DB | Tipo de datos de OLE DB C | Valor de vt | Comentarios |
---|---|---|---|---|
vt | SSVARTYPE | Especifica el tipo de valor incluido en la estructura SSVARIANT. | ||
bTinyIntVal | DBTYPE_UI1 | BYTE | VT_SS_UI1 | Admite el tipo de datos tinyintSQL Server. |
sShortIntVal | DBTYPE_I2 | SHORT | VT_SS_I2 | Admite el tipo de datos smallintSQL Server. |
lIntVal | DBTYPE_I4 | LONG | VT_SS_I4 | Admite el tipo de datos intSQL Server. |
llBigIntVal | DBTYPE_I8 | LARGE_INTEGER | VT_SS_I8 | Admite el tipo de datos bigintSQL Server. |
fltRealVal | DBTYPE_R4 | float | VT_SS_R4 | Admite el tipo de datos realSQL Server. |
dblFloatVal | DBTYPE_R8 | double | VT_SS_R8 | Admite el tipo de datos floatSQL Server. |
cyMoneyVal | DBTYPE_CY | LARGE_INTEGER | VT_SS_MONEY VT_SS_SMALLMONEY | Admite los tipos de datos money y smallmoneySQL Server. |
fBitVal | DBTYPE_BOOL | VARIANT_BOOL | VT_SS_BIT | Admite el tipo de datos bitSQL Server. |
rgbGuidVal | DBTYPE_GUID | GUID | VT_SS_GUID | Admite el tipo de datos uniqueidentifierSQL Server. |
numNumericVal | DBTYPE_NUMERIC | DB_NUMERIC | VT_SS_NUMERIC | Admite el tipo de datos numericSQL Server. |
dDateVal | DBTYPE_DATE | DBDATE | VT_SS_DATE | Admite el tipo de datos dateSQL Server. |
tsDateTimeVal | DBTYPE_DBTIMESTAMP | DBTIMESTAMP | VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 | Admite los tipos de datos smalldatetime, datetime y datetime2SQL Server. |
Time2Val | DBTYPE_DBTIME2 | DBTIME2 | VT_SS_TIME2 | Admite el tipo de datos timeSQL Server. Incluye los miembros siguientes: tTime2Val (DBTIME2) bScale (BYTE) Especifica la escala del valor tTime2Val. |
DateTimeVal | DBTYPE_DBTIMESTAMP | DBTIMESTAMP | VT_SS_DATETIME2 | Admite el tipo de datos datetime2SQL Server. Incluye los miembros siguientes: tsDataTimeVal (DBTIMESTAMP) bScale (BYTE) Especifica la escala del valor tsDataTimeVal. |
DateTimeOffsetVal | DBTYPE_DBTIMESTAMPOFSET | DBTIMESTAMPOFFSET | VT_SS_DATETIMEOFFSET | Admite el tipo de datos datetimeoffsetSQL Server. Incluye los miembros siguientes: tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET) bScale (BYTE) Especifica la escala del valor tsoDateTimeOffsetVal. |
NCharVal | No hay indicador de tipo OLE DB correspondiente. | struct _NCharVal | VT_SS_WVARSTRING, VT_SS_WSTRING |
Admite los tipos de datos nchar y nvarcharSQL Server. Incluye los miembros siguientes: sActualLength (SHORT) especifica la longitud real de la cadena a la que apunta pwchNCharVal. No incluye cero de terminación. sMaxLength (SHORT) especifica la longitud máxima de la cadena a la que apunta pwchNCharVal. pwchNCharVal (WCHAR *) Puntero a la cadena. Miembros no usados: rgbReserved, dwReservedy pwchReserved. |
CharVal | No hay indicador de tipo OLE DB correspondiente. | struct _CharVal | VT_SS_STRING, VT_SS_VARSTRING |
Admite los tipos de datos char y varcharSQL Server. Incluye los miembros siguientes: sActualLength (SHORT) especifica la longitud real de la cadena a la que apunta pchCharVal. No incluye cero de terminación. sMaxLength (SHORT) especifica la longitud máxima de la cadena a la que apunta pchCharVal. pchCharVal (CHAR *) Puntero a la cadena. Miembros no usados: rgbReserved, dwReserved y pwchReserved. |
BinaryVal | No hay indicador de tipo OLE DB correspondiente. | struct _BinaryVal | VT_SS_VARBINARY, VT_SS_BINARY |
Admite los tipos de datos binary y varbinarySQL Server. Incluye los miembros siguientes: sActualLength (SHORT) especifica la longitud real de los datos a los que apunta prgbBinaryVal. sMaxLength (SHORT) especifica la longitud máxima de los datos a los que apunta prgbBinaryVal. prgbBinaryVal (BYTE *) Puntero a los datos binarios. Miembro no usado: dwReserved. |
TipoDesconocido | No se usa | No se usa | No se usa | No se usa |
BLOBType | No se usa | No se usa | No se usa | No se usa |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de