Teilen über


SSVARIANT-Struktur in SQL Server Native Client

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Die in sqlncli.h definierte SSVARIANT-Struktur entspricht einem DBTYPE_SQLVARIANT Wert im SQL Server Native Client OLEDB-Anbieter.

SSVARIANT ist eine unterscheidende Union. Abhängig vom Wert des vt-Elements kann der Consumer feststellen, welches Element gelesen werden soll. vt-Werte entsprechen SQL Server-Datentypen. Die SSVARIANT-Struktur kann daher jeden SQL Server-Typ enthalten. Weitere Informationen zur Datenstruktur für standardmäßige OLE DB-Typen finden Sie unter Typindikatoren.

Bemerkungen

Wenn DataTypeCompat auf „80“ festgelegt ist, werden verschiedene SSVARIANT-Untertypen zu Zeichenfolgen. Beispielsweise werden die folgenden vt-Werte in SSVARIANT als VT_SS_WVARSTRING angezeigt:

  • VT_SS_DATETIMEOFFSET

  • VT_SS_DATETIME2

  • VT_SS_TIME2

  • VT_SS_DATE

Wenn DateTypeCompat auf "0" festgelegt ist, werden diese Typen in ihrer systemeigenen Form angezeigt.

Weitere Informationen zu SSPROP_INIT_DATATYPECOMPATIBILITY finden Sie unter Verwenden von Verbindungszeichenfolgenstichwörtern mit SQL Server Native Client.

Die Datei "sqlncli.h" enthält Variantenzugriffsmakros, die das Ableiten der Membertypen in der SSVARIANT-Struktur vereinfachen. Beispielsweise können Sie V_SS_DATETIMEOFFSET folgendermaßen verwenden:

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

Den vollständigen Satz von Zugriffsmakros für jedes Element der SSVARIANT-Struktur finden Sie in der Datei "sqlncli.hi".

In der folgenden Tabelle werden die Elemente der SSVARIANT-Struktur beschrieben:

Member OLE DB-Typindikator OLE DB-C-Datentyp vt-Wert Kommentare
vt SSVARTYPE Gibt den Typ des Werts in der SSVARIANT-Struktur an.
bTinyIntVal DBTYPE_UI1 BYTE VT_SS_UI1 Unterstützt den tinyintSQL Server-Datentyp.
sShortIntVal DBTYPE_I2 SHORT VT_SS_I2 Unterstützt den smallintSQL Server-Datentyp.
lIntVal DBTYPE_I4 LONG VT_SS_I4 Unterstützt den intSQL Server-Datentyp.
llBigIntVal DBTYPE_I8 LARGE_INTEGER VT_SS_I8 Unterstützt den bigintSQL Server-Datentyp.
fltRealVal DBTYPE_R4 float VT_SS_R4 Unterstützt den realSQL Server-Datentyp.
dblFloatVal DBTYPE_R8 double VT_SS_R8 Unterstützt den floatSQL Server-Datentyp.
cyMoneyVal DBTYPE_CY LARGE_INTEGER VT_SS_MONEY VT_SS_SMALLMONEY Unterstützt die Datentypen money und smallmoneySQL Server.
fBitVal DBTYPE_BOOL VARIANT_BOOL VT_SS_BIT Unterstützt den bitSQL Server-Datentyp.
rgbGuidVal DBTYPE_GUID GUID VT_SS_GUID Unterstützt den uniqueidentifierSQL Server-Datentyp.
numNumericVal DBTYPE_NUMERIC DB_NUMERIC VT_SS_NUMERIC Unterstützt den numericSQL Server-Datentyp.
dDateVal DBTYPE_DATE DBDATE VT_SS_DATE Unterstützt den date-Datentyp von SQL Server.
tsDateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 Unterstützt die Datentypen smalldatetime, datetime und datetime2SQL Server.
Time2Val DBTYPE_DBTIME2 DBTIME2 VT_SS_TIME2 Unterstützt den timeSQL Server-Datentyp.

Beinhaltet die folgenden Member:

tTime2Val (DBTIME2)

bScale (BYTE) Gibt die Skalierung für den tTime2Val-Wert an.
tsDateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_DATETIME2 Unterstützt den datetime2SQL Server-Datentyp.

Beinhaltet die folgenden Member:

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Gibt die Skalierung für den tsDataTimeVal-Wert an.
DateTimeOffsetVal DBTYPE_DBTIMESTAMPOFSET DBTIMESTAMPOFFSET VT_SS_DATETIMEOFFSET Unterstützt den datetimeoffsetSQL Server-Datentyp.

Beinhaltet die folgenden Member:

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Gibt die Skalierung für den tsoDateTimeOffsetVal-Wert an.
NCharVal Kein entsprechender OLE DB-Typindikator. struct _NCharVal VT_SS_WVARSTRING,

VT_SS_WSTRING
Unterstützt die Datentypen nchar und nvarcharSQL Server.

Beinhaltet die folgenden Member:

sActualLength (SHORT) Gibt die tatsächliche Länge der Zeichenfolge an, auf die pwchNCharVal verweist. Beinhaltet nicht den abschließenden Nullwert.

sMaxLength (SHORT) Gibt die maximale Länge der Zeichenfolge an, auf die pwchNCharVal verweist.

pwchNCharVal (WCHAR *) Zeiger auf die Zeichenfolge

Nicht verwendete Member: rgbReserved, dwReserved und pwchReserved.
CharVal Kein entsprechender OLE DB-Typindikator. struct_CharVal VT_SS_WVARSTRING

VT_SS_WVARSTRING
Unterstützt die Datentypen char und varcharSQL Server.

Beinhaltet die folgenden Member:

sActualLength (SHORT) Gibt die tatsächliche Länge der Zeichenfolge an, auf die pchCharVal verweist. Beinhaltet nicht den abschließenden Nullwert.

sMaxLength (SHORT) Gibt die maximale Länge der Zeichenfolge an, auf die pchCharVal verweist.

pchCharVal (CHAR *) Zeiger auf die Zeichenfolge

Nicht verwendete Member:

rgbReserved, dwReserved und pwchReserved.
BinaryVal Kein entsprechender OLE DB-Typindikator. struct_BinaryVal VT_SS_VARBINARY

VT_SS_BINARY
Unterstützt die Datentypen binary und varbinarySQL Server.

Beinhaltet die folgenden Member:

sActualLength (SHORT) Gibt die tatsächliche Länge der Daten an, auf die prgbBinaryVal verweist.

sMaxLength (SHORT) Gibt die maximale Länge der Daten an, auf die prgbBinaryVal verweist.

prgbBinaryVal (BYTE *) Zeiger auf die Binärdaten

Nicht verwendeter Member: dwReserved.
UnknownType NICHT VERWENDET NICHT VERWENDET NICHT VERWENDET NICHT VERWENDET
BLOBType NICHT VERWENDET NICHT VERWENDET NICHT VERWENDET NICHT VERWENDET

Weitere Informationen

Datentypen (OLE DB)