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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk