Struttura SSVARIANT

La struttura SSVARIANT, definita in sqlncli.h, corrisponde a un valore DBTYPE_SQLVARIANT nel provider OLE DB di SQL Server Native Client.

SSVARIANT è un'unione discriminante. A seconda del valore del membro vt, il consumer può determinare il membro da leggere. I valori vt corrispondono ai tipi di dati SQL Server. Pertanto, la struttura SSVARIANT può contenere qualsiasi tipo SQL Server. Per ulteriori informazioni sulla struttura dei dati per i tipi OLE DB standard, vedere Type Indicators.

Osservazioni

Quando DataTypeCompat==80, diversi sottotipi di SSVARIANT diventano stringhe. I valori vt seguenti vengono ad esempio visualizzati in SSVARIANT come VT_SS_WVARSTRING:

  • VT_SS_DATETIMEOFFSET

  • VT_SS_DATETIME2

  • VT_SS_TIME2

  • VT_SS_DATE

Quando DateTypeCompat == 0, questi tipi vengono visualizzati nel formato nativo.

Per ulteriori informazioni su SSPROP_INIT_DATATYPECOMPATIBILITY, vedere Utilizzo delle parole chiave delle stringhe di connessione con SQL Server Native Client.

Il file sqlncli.h contiene macro di accesso di tipo Variant che semplificano la risoluzione dei riferimenti ai tipi di membri nella struttura SSVARIANT. Un esempio è rappresentato da V_SS_DATETIMEOFFSET, che è possibile utilizzare come indicato di seguito:

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

Per il set completo di macro di accesso per ogni membro della struttura SSVARIANT, fare riferimento al file sqlncli.hi.

Nella tabella seguente vengono descritti i membri della struttura SSVARIANT:

Membro

Indicatore del tipo OLE DB

Tipo di dati C di OLE DB

valore vt

Commenti

vt

SSVARTYPE

Specifica il tipo di valore contenuto nella struttura SSVARIANT.

bTinyIntVal

DBTYPE_UI1

BYTE

VT_SS_UI1

Supporta il tipo di dati tinyint SQL Server.

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

Supporta il tipo di dati smallint SQL Server.

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

Supporta il tipo di dati int SQL Server.

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

Supporta il tipo di dati bigint SQL Server.

fltRealVal

DBTYPE_R4

float

VT_SS_R4

Supporta il tipo di dati real SQL Server.

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

Supporta il tipo di dati float SQL Server.

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

Supporta i tipi di dati money e smallmoney SQL Server.

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

Supporta il tipo di dati bit SQL Server.

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

Supporta il tipo di dati uniqueidentifier SQL Server.

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

Supporta il tipo di dati numeric SQL Server.

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

Supporta il tipo di dati date SQL Server.

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

Supporta i tipi di dati smalldatetime, datetime e datetime2 SQL Server.

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

Supporta il tipo di dati time SQL Server.

Include i membri indicati di seguito:

tTime2Val (DBTIME2)

bScale (BYTE) Specifica la scala per il valore tTime2Val.

DateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_DATETIME2

Supporta il tipo di dati datetime2 SQL Server.

Include i membri indicati di seguito:

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Specifica la scala per il valore tsDataTimeVal.

DateTimeOffsetVal

DBTYPE_DBTIMESTAMPOFSET

DBTIMESTAMPOFFSET

VT_SS_DATETIMEOFFSET

Supporta il tipo di dati datetimeoffset SQL Server.

Include i membri indicati di seguito:

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Specifica la scala per il valore tsoDateTimeOffsetVal.

NCharVal

Nessun indicatore del tipo OLE DB corrispondente.

struct _NCharVal

VT_SS_WVARSTRING,

VT_SS_WSTRING

Supporta i tipi di dati nchar e nvarchar SQL Server.

Include i membri indicati di seguito:

sActualLength (SHORT) Specifica la lunghezza effettiva per la stringa a cui punta pwchNCharVal. Non include lo zero finale.

sMaxLength (SHORT) Specifica la lunghezza massima per la stringa a cui punta pwchNCharVal.

pwchNCharVal (WCHAR *) Puntatore alla stringa.

Membri non utilizzati: rgbReserved, dwReserved, e pwchReserved.

CharVal

Nessun indicatore del tipo OLE DB corrispondente.

struct _CharVal

VT_SS_STRING,

VT_SS_VARSTRING

Supporta i tipi di dati char e varchar SQL Server.

Include i membri indicati di seguito:

sActualLength (SHORT) Specifica la lunghezza effettiva per la stringa a cui punta pchCharVal. Non include lo zero finale.

sMaxLength (SHORT) Specifica la lunghezza massima per la stringa a cui punta pchCharVal.

pchCharVal (CHAR *) Puntatore alla stringa.

Membri non utilizzati:

rgbReserved, dwReserved e pwchReserved.

BinaryVal

Nessun indicatore del tipo OLE DB corrispondente.

struct _BinaryVal

VT_SS_VARBINARY,

VT_SS_BINARY

Supporta i tipi di dati binary e varbinary SQL Server.

Include i membri indicati di seguito:

sActualLength (SHORT) Specifica la lunghezza effettiva per i dati a cui punta prgbBinaryVal.

sMaxLength (SHORT) Specifica la lunghezza massima per i dati a cui punta prgbBinaryVal.

prgbBinaryVal (BYTE *) Puntatore ai dati binari.

Membro non utilizzato: dwReserved.

UnknownType

UNUSED

UNUSED

UNUSED

UNUSED

BLOBType

UNUSED

UNUSED

UNUSED

UNUSED

Vedere anche

Concetti

Tipi di dati (OLE DB)