Struktur SSVARIANT di SQL Server Native Client

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Struktur SSVARIANT , yang didefinisikan dalam sqlncli.h, sesuai dengan nilai DBTYPE_SQLVARIANT di penyedia OLEDB Klien Asli SQL Server.

SSVARIANT adalah serikat yang diskriminatif. Tergantung pada nilai anggota vt, konsumen dapat menentukan anggota mana yang akan dibaca. Nilai vt sesuai dengan jenis data SQL Server. Oleh karena itu, struktur SSVARIANT dapat menampung jenis SQL Server apa pun. Untuk informasi selengkapnya tentang struktur data untuk jenis OLE DB standar, lihat Indikator Tipe.

Keterangan

Ketika DataTypeCompat==80, beberapa subjenis SSVARIANT menjadi string. Misalnya, nilai vt berikut akan muncul di SSVARIANT sebagai VT_SS_WVARSTRING:

  • VT_SS_DATETIMEOFFSET

  • VT_SS_DATETIME2

  • VT_SS_TIME2

  • VT_SS_DATE

Ketika DateTypeCompat == 0, jenis ini akan muncul dalam bentuk aslinya.

Untuk informasi selengkapnya tentang SSPROP_INIT_DATATYPECOMPATIBILITY, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.

File sqlncli.h berisi makro akses varian yang menyederhanakan dereferensi jenis anggota dalam struktur SSVARIANT . Contohnya adalah V_SS_DATETIMEOFFSET, yang dapat Anda gunakan sebagai berikut:

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

Untuk kumpulan lengkap makro akses untuk setiap anggota struktur SSVARIANT , lihat file sqlncli.hi.

Tabel berikut ini menjelaskan anggota struktur SSVARIANT :

Anggota Indikator tipe OLE DB Tipe data OLE DB C nilai vt Komentar
Vt SSVARTYPE Menentukan jenis nilai yang terkandung dalam struct SSVARIANT .
bTinyIntVal DBTYPE_UI1 BYTE VT_SS_UI1 Mendukung jenis data SQL Server yang kecil.
sShortIntVal DBTYPE_I2 PENDEK VT_SS_I2 Mendukung jenis data SmallintSQL Server.
lIntVal DBTYPE_I4 LONG VT_SS_I4 Mendukung jenis data SQL Server int.
llBigIntVal DBTYPE_I8 LARGE_INTEGER VT_SS_I8 Mendukung jenis data BigintSQL Server.
fltRealVal DBTYPE_R4 float VT_SS_R4 Mendukung jenis data SQL Server nyata.
dblFloatVal DBTYPE_R8 Double VT_SS_R8 Mendukung jenis data FloatSQL Server.
cyMoneyVal DBTYPE_CY LARGE_INTEGER VT_SS_MONEY VT_SS_SMALLMONEY Mendukung uang dan jenis data SmallmoneySQL Server.
fBitVal DBTYPE_BOOL VARIANT_BOOL VT_SS_BIT Mendukung jenis data SQL Server bit.
rgbGuidVal DBTYPE_GUID GUID VT_SS_GUID Mendukung jenis data SQL Server uniqueidentifier.
numNumericVal DBTYPE_NUMERIC DB_NUMERIC VT_SS_NUMERIC Mendukung jenis data SQL Server numerik.
dDateVal DBTYPE_DATE DBDATE VT_SS_DATE Mendukung jenis data SQL Server tanggal.
tsDateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 Mendukung jenis data smalldatetime, datetime, dan datetime2SQL Server.
Time2Val DBTYPE_DBTIME2 DBTIME2 VT_SS_TIME2 Mendukung waktujenis data SQL Server.

Termasuk anggota berikut:

tTime2Val (DBTIME2)

bScale (BYTE) Menentukan skala untuk nilai tTime2Val .
DateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_DATETIME2 Mendukung jenis data datetime2SQL Server.

Termasuk anggota berikut:

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Menentukan skala untuk nilai tsDataTimeVal .
DateTimeOffsetVal DBTYPE_DBTIMESTAMPOFSET DBTIMESTAMPOFFSET VT_SS_DATETIMEOFFSET Mendukung jenis data datetimeoffsetSQL Server.

Termasuk anggota berikut:

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Menentukan skala untuk nilai tsoDateTimeOffsetVal .
NCharVal Tidak ada indikator jenis OLE DB yang sesuai. _NCharVal struktur VT_SS_WVARSTRING,

VT_SS_WSTRING
Mendukung jenis data nchar dan nvarcharSQL Server.

Termasuk anggota berikut:

sActualLength (SHORT) Menentukan panjang aktual untuk string tempat titik pwchNCharVal . Tidak termasuk mengakhiri nol.

sMaxLength (SHORT) Menentukan panjang maksimum untuk string tempat titik pwchNCharVal .

pwchNCharVal (WCHAR *) Pointer ke string.

Anggota yang tidak digunakan: rgbReserved, dwReserved, dan pwchReserved.
CharVal Tidak ada indikator jenis OLE DB yang sesuai. _CharVal struktur VT_SS_STRING,

VT_SS_VARSTRING
Mendukung jenis data char dan varcharSQL Server.

Termasuk anggota berikut:

sActualLength (SHORT) Menentukan panjang aktual untuk string tempat titik pchCharVal . Tidak termasuk mengakhiri nol.

sMaxLength (SHORT) Menentukan panjang maksimum untuk string tempat titik pchCharVal .

pchCharVal (CHAR *) Pointer ke string.

Anggota yang tidak digunakan:

rgbReserved, dwReserved, dan pwchReserved.
BinaryVal Tidak ada indikator jenis OLE DB yang sesuai. _BinaryVal struktur VT_SS_VARBINARY,

VT_SS_BINARY
Mendukung jenis data SQL Server biner dan varbinary.

Termasuk anggota berikut:

sActualLength (SHORT) Menentukan panjang aktual untuk data yang titik prgbBinaryVal .

sMaxLength (SHORT) Menentukan panjang maksimum untuk data yang titik prgbBinaryVal .

prgbBinaryVal (BYTE *) Pointer ke data biner.

Anggota yang tidak digunakan: dwReserved.
UnknownType TIDAK TERPAKAI TIDAK TERPAKAI TIDAK TERPAKAI TIDAK TERPAKAI
BLOBType TIDAK TERPAKAI TIDAK TERPAKAI TIDAK TERPAKAI TIDAK TERPAKAI

Lihat Juga

Tipe Data (OLE DB)