Blob dan Objek OLE di SQL Server Native Client

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

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

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

Penyedia SQL Server Native Client OLE DB dapat menggunakan antarmuka IStorage yang diterapkan konsumen saat konsumen menyediakan pointer antarmuka dalam aksesor yang terikat untuk modifikasi data.

Untuk jenis data bernilai besar, penyedia SQL Server Native Client OLE DB memeriksa asumsi ukuran jenis di antarmuka IRowset dan DDL. Kolom dengan jenis data varchar, nvarchar, dan varbinary dengan ukuran maks yang diatur ke tidak terbatas akan direpresentasikan sebagai ISLONG melalui kumpulan baris skema dan antarmuka yang mengembalikan jenis data kolom.

Penyedia SQL Server Native Client OLE DB 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 pemotokan 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. Penyedia SQL Server Native Client OLE DB mendukung parameter output pengikatan sebagai DBTYPE_IUNKNOWN untuk jenis data nilai besar untuk memfasilitasi skenario di mana prosedur tersimpan mengembalikan jenis data ini sebagai nilai pengembalian yang akan diekspos sebagai DBTYPE_IUNKNOWN kepada klien.

Batasan Objek Penyimpanan

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

  • Di penyedia SQL Server Native Client OLE DB, nilai default properti baca-saja DBPROP_BLOCKINGSTORAGEOBJECTS adalah VARIANT_TRUE. Ini menunjukkan bahwa jika objek penyimpanan aktif, beberapa metode (selain yang ada di objek penyimpanan) akan gagal dengan E_UNEXPECTED.

  • Panjang data yang disajikan oleh objek penyimpanan yang diterapkan konsumen harus diketahui oleh penyedia SQL Server Native Client OLE DB saat pengakses 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 kumpulan baris yang didukung kursor penyedia OLE DB SQL Server Native Client untuk mengambil data baris atau memproses semua nilai data besar sebelum mengambil nilai baris lainnya. Jika DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM, penyedia SQL Server Native Client OLE DB menyimpan semua jenis data xml sebagai objek besar biner (BLOB) sehingga dapat diakses dalam urutan apa pun.

Di Bagian Ini

Lihat juga

SQL Server Native Client (OLE DB)
Menggunakan Jenis Nilai Besar