Bagikan melalui


Blob dan Objek OLE

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Unduh driver OLE DB

Driver OLE DB untuk SQL Server mengekspos antarmuka ISequentialStream untuk mendukung akses konsumen ke SQL Server ntext, teks1, gambar, varchar(maks), nvarchar(maks), varbinary(maks), dan jenis data xml sebagai objek besar biner (BLOB). Metode Baca di ISequentialStream memungkinkan konsumen mengambil banyak data dalam gugus yang dapat dikelola.

[1]: Menggunakan antarmuka ISequentialStream untuk memasukkan data yang dikodekan UTF-8 ke dalam kolom teks warisan hanya terbatas pada server yang mendukung UTF-8. Upaya untuk menjalankan skenario ini saat menargetkan server yang tidak mendukung UTF-8 akan mengakibatkan driver memposting pesan kesalahan berikut: "Streaming tidak didukung melalui jenis kolom yang dipilih".

Untuk sampel yang menunjukkan fitur ini, lihat Mengatur Data Besar (OLE DB).

Driver OLE DB untuk SQL Server dapat menggunakan antarmuka IStorage yang diterapkan konsumen ketika konsumen menyediakan pointer antarmuka dalam aksesor yang terikat untuk modifikasi data.

Untuk jenis data nilai besar, Driver OLE DB untuk SQL Server memeriksa asumsi ukuran jenis di antarmuka IRowset dan DDL. Kolom yang memiliki jenis data varchar, nvarchar, dan varbinary dan ukuran maks yang diatur ke tidak terbatas akan direpresentasikan sebagai ISLONG melalui set baris skema dan melalui antarmuka yang mengembalikan jenis data kolom.

Driver OLE DB untuk SQL Server mengekspos jenis varchar(max), varbinary(max) dan nvarchar(max) masing-masing sebagai DBTYPE_STR, DBTYPE_BYTES, dan DBTYPE_WSTR.

Untuk bekerja dengan jenis ini, aplikasi memiliki opsi berikut:

  • Ikat sebagai jenis (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR). Jika buffer tidak cukup besar pemotongan akan terjadi, persis seperti untuk jenis ini dalam rilis sebelumnya (meskipun nilai yang lebih besar sekarang tersedia).

  • Ikat sebagai jenis dan tentukan juga DBTYPE_BYREF.

  • Ikat sebagai DBTYPE_IUNKNOWN dan gunakan streaming.

Jika terikat ke DBTYPE_IUNKNOWN, fungsionalitas aliran ISequentialStream digunakan. Driver OLE DB untuk SQL Server mendukung parameter output pengikatan sebagai DBTYPE_IUNKNOWN untuk jenis data nilai besar. Ini untuk mendukung skenario di mana prosedur tersimpan mengembalikan jenis data ini sebagai nilai pengembalian, yang akan dikembalikan sebagai DBTYPE_IUNKNOWN kepada klien.

Batasan Objek Penyimpanan

  • Driver OLE DB untuk SQL Server hanya dapat mendukung satu objek penyimpanan terbuka. Mencoba membuka lebih dari satu objek penyimpanan (untuk mendapatkan referensi pada lebih dari satu penunjuk antarmuka ISequentialStream ) mengembalikan DBSTATUS_E_CANTCREATE.

  • Di Driver OLE DB untuk SQL Server, nilai default properti baca-saja DBPROP_BLOCKINGSTORAGEOBJECTS adalah VARIANT_TRUE. Oleh karena itu, jika objek penyimpanan aktif, beberapa metode (selain metode pada objek penyimpanan) akan gagal dengan E_UNEXPECTED.

  • Panjang data yang disajikan oleh objek penyimpanan yang diterapkan konsumen harus diketahui oleh Driver OLE DB untuk SQL Server ketika aksesor baris yang mereferensikan objek penyimpanan dibuat. Konsumen harus mengikat indikator panjang dalam struktur DBBINDING yang digunakan untuk pembuatan aksesor.

  • Jika baris berisi lebih dari satu nilai data besar dan DBPROP_ACCESSORDER tidak DBPROPVAL_AO_RANDOM, konsumen harus menggunakan Driver OLE DB untuk kumpulan baris yang didukung kursor SQL Server untuk mengambil data baris atau memproses semua nilai data besar sebelum mengambil nilai baris lainnya. Jika DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM, Driver OLE DB untuk SQL Server menyimpan semua jenis data xml sebagai objek besar biner (BLOB) sehingga dapat diakses dalam urutan apa pun.

Di Bagian Ini

Lihat Juga

Driver OLE DB untuk Pemrograman SQL Server
Menggunakan Jenis Nilai Besar