Pemetaan Jenis Data Klien Asli SQL Server di Set Baris dan Parameter
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)
Dalam kumpulan baris dan sebagai nilai parameter, penyedia SQL Server Native Client OLE DB mewakili data SQL Server dengan menggunakan jenis data yang ditentukan OLE DB berikut, yang dilaporkan dalam fungsi IColumnsInfo::GetColumnInfo dan ICommandWithParameters::GetParameterInfo.
Tipe data SQL Server | Jenis data OLE DB |
---|---|
bigint | DBTYPE_I8 |
biner | DBTYPE_BYTES |
bit | DBTYPE_BOOL |
Char | DBTYPE_STR |
datetime | DBTYPE_DBTIMESTAMP |
datetime2 | DBTYPE_DBTIME2 |
desimal | DBTYPE_NUMERIC |
float | DBTYPE_R8 |
gambar | DBTYPE_BYTES |
int | DBTYPE_I4 |
Uang | DBTYPE_CY |
nchar | DBTYPE_WSTR |
ntext | DBTYPE_WSTR |
numerik | DBTYPE_NUMERIC |
nvarchar | DBTYPE_WSTR |
real | DBTYPE_R4 |
smalldatetime | DBTYPE_DBTIMESTAMP |
smallint | DBTYPE_I2 |
smallmoney | DBTYPE_CY |
aql_variant | DBTYPE_VARIANT, DBTYPE_SQLVARIANT |
nama sysname | DBTYPE_WSTR |
text | DBTYPE_STR |
timestamp | DBTYPE_BYTES |
kecil | DBTYPE_UI1 |
UDT | DBTYPE_UDT |
pengidentifikasi unik | DBTYPE_GUID |
varbinary | DBTYPE_BYTES |
varchar | DBTYPE_STR |
XML | DBTYPE_XML |
Penyedia SQL Server Native Client OLE DB mendukung konversi data yang diminta konsumen seperti yang ditunjukkan dalam ilustrasi.
Objek sql_variant dapat menyimpan data dari jenis data SQL Server apa pun kecuali teks, ntext, gambar, varchar(max), nvarchar(max), varbinary(max), xml, tanda waktu, dan jenis yang ditentukan pengguna Microsoft .NET Framework. Instans data sql_variant juga tidak dapat memiliki sql_variant sebagai jenis data dasar yang mendasarnya. Misalnya, kolom dapat berisi nilai smallint untuk beberapa baris, nilai float untuk baris lain, dan nilai char/nchar di sisanya.
Catatan
Jenis data sql_variant mirip dengan jenis data Varian di Visual Basic dan DBTYPE_VARIANT, DBTYPE_SQLVARIANT di OLEDB.
Ketika data sql_variant diambil sebagai DBTYPE_VARIANT, data tersebut dimasukkan ke dalam struktur VARIAN dalam buffer. Tetapi subjenis dalam struktur VARIAN mungkin tidak memetakan ke subjenis yang ditentukan dalam jenis data sql_variant . Data sql_variant kemudian harus diambil sebagai DBTYPE_SQLVARIANT agar semua subjenis cocok.
Jenis Data DBTYPE_SQLVARIANT
Untuk mendukung jenis data sql_variant , penyedia SQL Server Native Client OLE DB mengekspos jenis data khusus penyedia yang disebut DBTYPE_SQLVARIANT. Saat sql_variant data diambil sebagai DBTYPE_SQLVARIANT, data tersebut disimpan dalam struktur SSVARIANT khusus penyedia. Struktur SSVARIANT berisi semua subjenis yang cocok dengan subjenis tipe data sql_variant .
Properti sesi SSPROP_ALLOWNATIVEVARIANT juga harus diatur ke TRUE.
SSPROP_ALLOWNATIVEVARIANT Properti Khusus Penyedia
Dalam mengambil data, Anda dapat menentukan secara eksplisit jenis data apa yang harus dikembalikan untuk kolom atau untuk parameter. IColumnsInfo juga dapat digunakan untuk mendapatkan informasi kolom dan menggunakannya untuk melakukan pengikatan. Ketika IColumnsInfo digunakan untuk mendapatkan informasi kolom untuk tujuan pengikatan, jika properti sesi SSPROP_ALLOWNATIVEVARIANT FALSE (nilai default), DBTYPE_VARIANT dikembalikan untuk kolom sql_variant . Jika properti SSPROP_ALLOWNATIVEVARIANT false DBTYPE_SQLVARIANT tidak didukung. Jika properti SSPROP_ALLOWNATIVEVARIANT diatur ke TRUE, jenis kolom dikembalikan sebagai DBTYPE_SQLVARIANT, dalam hal ini buffer akan menyimpan struktur SSVARIANT. Dalam mengambil data sql_variant sebagai DBTYPE_SQLVARIANT, properti sesi SSPROP_ALLOWNATIVEVARIANT harus diatur ke TRUE.
properti SSPROP_ALLOWNATIVEVARIANT adalah bagian dari kumpulan properti DBPROPSET_SQLSERVERSESSION khusus penyedia, dan merupakan properti sesi.
DBTYPE_VARIANT berlaku untuk semua penyedia OLE DB lainnya.
SSPROP_ALLOWNATIVEVARIANT
SSPROP_ALLOWNATIVEVARIANT adalah properti sesi dan merupakan bagian dari kumpulan properti DBPROPSET_SQLSERVERSESSION.
ID Properti | Deskripsi |
---|---|
SSPROP_ALLOWNATIVEVARIANT | Jenis: VT_BOOL R/W: Baca/Tulis Default: VARIANT_FALSE Deskripsi: Menentukan apakah data yang diambil adalah sebagai DBTYPE_VARIANT atau DBTYPE_SQLVARIANT. VARIANT_TRUE: Jenis kolom dikembalikan sebagai DBTYPE_SQLVARIANT dalam hal ini buffer akan menyimpan struktur SSVARIANT. VARIANT_FALSE: Jenis kolom dikembalikan sebagai DBTYPE_VARIANT dan buffer akan memiliki struktur VARIAN. |
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