Struttura SSVARIANT in SQL Server Native Client

Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)

La struttura SSVARIANT , definita in sqlncli.h, corrisponde a un valore DBTYPE_SQLVARIANT nel provider OLEDB 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 di SQL Server. Pertanto, la struttura SSVARIANT può contenere qualsiasi tipo SQL Server. Per altre informazioni sulla struttura dei dati per i tipi di OLE DB standard, vedere Indicatori di tipo.

Osservazioni:

Quando DataTypeCompat==80, diversi sottotipi di SSVARIANT diventano stringhe. I valori vt seguenti verranno 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 altre informazioni sulle SSPROP_INIT_DATATYPECOMPATIBILITY, vedere Uso delle parole chiave delle stringhe di connessione con SQL Server Native Client.

Il file sqlncli.h contiene macro di accesso varianti che semplificano la dereferenziazione dei tipi di membro 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 di SQL Server.
sShortIntVal DBTYPE_I2 SHORT VT_SS_I2 Supporta il tipo di dati smallint di SQL Server.
lIntVal DBTYPE_I4 LONG VT_SS_I4 Supporta il tipo di dati int di SQL Server.
llBigIntVal DBTYPE_I8 LARGE_INTEGER VT_SS_I8 Supporta il tipo di dati bigint di SQL Server.
fltRealVal DBTYPE_R4 float VT_SS_R4 Supporta il tipo di dati real di SQL Server.
dblFloatVal DBTYPE_R8 double VT_SS_R8 Supporta il tipo di dati float di SQL Server.
cyMoneyVal DBTYPE_CY LARGE_INTEGER VT_SS_MONEY VT_SS_SMALLMONEY Supporta i tipi di dati money e smallmoney di SQL Server.
fBitVal DBTYPE_BOOL VARIANT_BOOL VT_SS_BIT Supporta il tipo di dati bit di SQL Server.
rgbGuidVal DBTYPE_GUID GUID VT_SS_GUID Supporta il tipo di dati uniqueidentifier di SQL Server.
numNumericVal DBTYPE_NUMERIC DB_NUMERIC VT_SS_NUMERIC Supporta il tipo di dati numeric di SQL Server.
dDateVal DBTYPE_DATE DBDATE VT_SS_DATE Supporta il tipo di dati date di SQL Server.
tsDateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 Supporta i tipi di dati smalldatetime, datetime e datetime2SQL di SQL Server.
Time2Val DBTYPE_DBTIME2 DBTIME2 VT_SS_TIME2 Supporta il tipo di dati time di 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 di 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 di 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 di 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 usati: 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 di 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 di 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 usato: dwReserved.
UnknownType UNUSED UNUSED UNUSED UNUSED
BLOBType UNUSED UNUSED UNUSED UNUSED

Vedi anche

Tipi di dati (OLE DB)