Partager via


Structure SSVARIANT

La structure SSVARIANT, qui est définie dans sqlncli.h, correspond à une valeur DBTYPE_SQLVARIANT dans le fournisseur OLE DB SQL Server Native Client.

SSVARIANT est une union de discrimination. En fonction de la valeur du membre vt, le consommateur peut identifier le membre à lire. Les valeurs vt correspondent aux types de données SQL Server. Par conséquent, la structure SSVARIANT peut contenir tout type SQL Server. Pour plus d'informations sur la structure des données pour les types OLE DB standard, consultez Type Indicators (en anglais).

Notes

Lorsque DataTypeCompat==80, plusieurs sous-types SSVARIANT deviennent des chaînes. Par exemple, les valeurs vt suivantes apparaissent dans SSVARIANT en tant que VT_SS_WVARSTRING :

  • VT_SS_DATETIMEOFFSET

  • VT_SS_DATETIME2

  • VT_SS_TIME2

  • VT_SS_DATE

Lorsque DateTypeCompat == 0, ces types s'affichent sous leur forme native.

Pour plus d'informations sur SSPROP_INIT_DATATYPECOMPATIBILITY, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.

Le fichier sqlncli.h contient des macros d'accès de type Variant qui simplifient l'annulation de la référence des types de membres dans la structure SSVARIANT. Un exemple est V_SS_DATETIMEOFFSET, que vous pouvez utiliser comme suit :

memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;

Pour obtenir le jeu complet de macros d'accès pour chaque membre de la structure SSVARIANT, consultez le fichier sqlncli.hi.

Le tableau ci-dessous décrit les membres de la structure SSVARIANT :

Membre

Indicateur de type OLE DB

Type de données OLE DB C

Valeur vt

Commentaires

vt

SSVARTYPE

Spécifie le type de valeur contenu dans la structure SSVARIANT.

bTinyIntVal

DBTYPE_UI1

BYTE

VT_SS_UI1

Prend en charge le type de données tinyint SQL Server.

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

Prend en charge le type de données smallint SQL Server.

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

Prend en charge le type de données int SQL Server.

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

Prend en charge le type de données bigint SQL Server.

fltRealVal

DBTYPE_R4

float

VT_SS_R4

Prend en charge le type de données real SQL Server.

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

Prend en charge le type de données float SQL Server.

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

Prend en charge les types de données money et smallmoney SQL Server.

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

Prend en charge le type de données bit SQL Server.

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

Prend en charge le type de données uniqueidentifier SQL Server.

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

Prend en charge le type de données numeric SQL Server.

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

Prend en charge le type de données date SQL Server.

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

Prend en charge les types de données smalldatetime, datetime et datetime2 SQL Server.

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

Prend en charge le type de données time SQL Server.

Inclut les membres suivants :

tTime2Val (DBTIME2)

bScale (BYTE) Spécifie l'échelle de la valeur tTime2Val.

DateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_DATETIME2

Prend en charge le type de données datetime2 SQL Server.

Inclut les membres suivants :

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Spécifie l'échelle de la valeur tsDataTimeVal.

DateTimeOffsetVal

DBTYPE_DBTIMESTAMPOFSET

DBTIMESTAMPOFFSET

VT_SS_DATETIMEOFFSET

Prend en charge le type de données datetimeoffset SQL Server.

Inclut les membres suivants :

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Spécifie l'échelle de la valeur tsoDateTimeOffsetVal.

NCharVal

Aucun indicateur de type OLE DB correspondant.

struct _NCharVal

VT_SS_WVARSTRING,

VT_SS_WSTRING

Prend en charge les types de données nchar et nvarchar SQL Server.

Inclut les membres suivants :

sActualLength (SHORT) Spécifie la longueur réelle de la chaîne vers laquelle pwchNCharVal pointe. N'inclut pas le zéro de fin.

sMaxLength (SHORT) Spécifie la longueur maximale de la chaîne vers laquelle pwchNCharVal pointe.

pwchNCharVal (WCHAR *) Pointeur vers la chaîne.

Membres non utilisés : rgbReserved, dwReserved et pwchReserved.

CharVal

Aucun indicateur de type OLE DB correspondant.

struct _CharVal

VT_SS_STRING,

VT_SS_VARSTRING

Prend en charge les types de données char et varchar SQL Server.

Inclut les membres suivants :

sActualLength (SHORT) Spécifie la longueur réelle de la chaîne vers laquelle pchCharVal pointe. N'inclut pas le zéro de fin.

sMaxLength (SHORT) Spécifie la longueur maximale de la chaîne vers laquelle pchCharVal pointe.

pchCharVal (CHAR *) Pointeur vers la chaîne.

Membres non utilisés :

rgbReserved, dwReserved et pwchReserved.

BinaryVal

Aucun indicateur de type OLE DB correspondant.

struct _BinaryVal

VT_SS_VARBINARY,

VT_SS_BINARY

Prend en charge les types de données binary et varbinary SQL Server.

Inclut les membres suivants :

sActualLength (SHORT) Spécifie la longueur réelle des données vers lesquelles prgbBinaryVal pointe.

sMaxLength (SHORT) Spécifie la longueur maximale des données vers lesquelles prgbBinaryVal pointe.

prgbBinaryVal (BYTE *) Pointeur vers les données binaires.

Membre non utilisé : dwReserved.

UnknownType

UNUSED

UNUSED

UNUSED

UNUSED

BLOBType

UNUSED

UNUSED

UNUSED

UNUSED

Voir aussi

Concepts

Types de données (OLE DB)