Share via


Estructura SSVARIANT

La estructura SSVARIANT, que se define en sqlncli.h, corresponde a un valor DBTYPE_SQLVARIANT en el proveedor OLEDB de SQL Server Native Client.

SSVARIANT es una unión de discriminación. Dependiendo del valor del miembro vt del miembro, el consumidor puede determinar qué miembro se ha de leer. Los valores de vt corresponden a tipos de datos de SQL Server. Por lo tanto, la estructura SSVARIANT puede contener cualquier tipo de SQL Server. Para obtener más información sobre la estructura de datos para los tipos OLE DB estándar, vea Type Indicators.

Comentarios

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 acerca de SSPROP_INIT_DATATYPECOMPATIBILITY, vea Usar palabras clave de cadena de conexión con SQL Server Native Client.

El archivo sqlncli.h contiene macros de acceso a tipos de datos variant que simplifican la eliminación de referencias a los tipos de miembro de 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 siguiente tabla se describen los miembros de la estructura SSVARIANT:

Miembro

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 tinyint de SQL Server.

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

Admite el tipo de datos smallint de SQL Server.

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

Admite el tipo de datos int de SQL Server.

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

Admite el tipo de datos bigint de SQL Server.

fltRealVal

DBTYPE_R4

float

VT_SS_R4

Admite el tipo de datos real de SQL Server.

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

Admite el tipo de datos float de SQL Server.

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

Admite los tipos de datos money y smallmoney de SQL Server.

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

Admite el tipo de datos bit de SQL Server.

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

Admite el tipo de datos uniqueidentifier de SQL Server.

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

Admite el tipo de datos numeric de SQL Server.

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

Admite el tipo de datos date de SQL Server.

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

Admite los tipos de datos smalldatetime, datetime y datetime2 de SQL Server.

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

Admite el tipo de datos time de SQL Server.

Incluye los miembros siguientes:

tTime2Val (DBTIME2)

bScale (BYTE) Especifica la escala para el valor de tTime2Val.

DateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_DATETIME2

Admite el tipo de datos datetime2 de SQL Server.

Incluye los miembros siguientes:

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Especifica la escala para el valor de tsDataTimeVal.

DateTimeOffsetVal

DBTYPE_DBTIMESTAMPOFSET

DBTIMESTAMPOFFSET

VT_SS_DATETIMEOFFSET

Admite el tipo de datos datetimeoffset de SQL Server.

Incluye los miembros siguientes:

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Especifica la escala para el valor de 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 nvarchar de SQL Server.

Incluye los miembros siguientes:

sActualLength (SHORT) Especifica la longitud real de la cadena a la que señala pwchNCharVal. No incluye cero de terminación.

sMaxLength (SHORT) Especifica la longitud máxima de la cadena a la que señala pwchNCharVal.

pwchNCharVal (WCHAR *) Puntero a la cadena.

Miembros no usados: rgbReserved, dwReserved y 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 varchar de SQL Server.

Incluye los miembros siguientes:

sActualLength (SHORT) Especifica la longitud real de la cadena a la que señala pchCharVal. No incluye cero de terminación.

sMaxLength (SHORT) Especifica la longitud máxima de la cadena a la que señala 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 varbinary de SQL Server.

Incluye los miembros siguientes:

sActualLength (SHORT) Especifica la longitud real de los datos a los que señala prgbBinaryVal.

sMaxLength (SHORT) Especifica la longitud máxima de los datos a los que señala prgbBinaryVal.

prgbBinaryVal (BYTE *) Puntero a los datos binarios.

Miembro no usado: dwReserved.

UnknownType

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

Vea también

Conceptos

Tipos de datos (OLE DB)