Recordset: Bekerja dengan Item Data Besar (ODBC)
Topik ini berlaku untuk kelas MFC ODBC dan kelas MFC DAO.
Catatan
Jika Anda menggunakan kelas MFC DAO, kelola item data besar Anda dengan kelas CByteArray daripada kelas CLongBinary. Jika Anda menggunakan kelas ODBC MFC dengan pengambilan baris massal, gunakan CLongBinary
alih-alih CByteArray
. Untuk informasi selengkapnya tentang pengambilan baris massal, lihat Recordset: Mengambil Rekaman secara Massal (ODBC).
Misalkan database Anda dapat menyimpan sebagian besar data, seperti bitmap (foto karyawan, peta, gambar produk, objek OLE, dan sebagainya). Data semacam ini sering disebut sebagai Objek Besar Biner (atau BLOB) karena:
Setiap nilai bidang besar.
Tidak seperti angka dan jenis data sederhana lainnya, tidak memiliki ukuran yang dapat diprediksi.
Data tidak berbentuk dari perspektif program Anda.
Topik ini menjelaskan apa yang disediakan kelas database untuk bekerja dengan objek tersebut.
Mengelola Objek Besar
Recordset memiliki dua cara untuk menyelesaikan kesulitan khusus dalam mengelola objek besar biner. Anda dapat menggunakan kelas CByteArray atau Anda dapat menggunakan kelas CLongBinary. Secara umum, CByteArray
adalah cara yang disukai untuk mengelola data biner besar.
CByteArray
membutuhkan lebih banyak overhead daripada CLongBinary
tetapi lebih mampu, seperti yang dijelaskan dalam Kelas CByteArray. CLongBinary
dijelaskan secara singkat di Kelas CLongBinary.
Untuk informasi terperinci tentang menggunakan CByteArray
untuk bekerja dengan item data besar, lihat Catatan Teknis 45.
Kelas CByteArray
CByteArray
adalah salah satu kelas koleksi MFC. Objek CByteArray
menyimpan array byte dinamis — array dapat tumbuh jika diperlukan. Kelas ini menyediakan akses cepat menurut indeks, seperti halnya array C++ bawaan. CByteArray
objek dapat diserialisasikan dan dibuang untuk tujuan diagnostik. Kelas menyediakan fungsi anggota untuk mendapatkan dan mengatur byte yang ditentukan, menyisipkan dan menambahkan byte, dan menghapus satu byte atau semua byte. Fasilitas ini mempermudah penguraian data biner. Misalnya, jika objek biner adalah objek OLE, Anda mungkin harus bekerja melalui beberapa byte header untuk mencapai objek aktual.
Menggunakan CByteArray di Recordsets
Dengan memberi anggota data bidang jenis CByteArray
himpunan data Anda , Anda menyediakan basis tetap dari mana RFX dapat mengelola transfer objek tersebut antara set rekaman Anda dan sumber data dan di mana Anda dapat memanipulasi data di dalam objek. RFX memerlukan situs tertentu untuk data yang diambil, dan Anda memerlukan cara untuk mengakses data yang mendasar.
Untuk informasi terperinci tentang menggunakan CByteArray
untuk bekerja dengan item data besar, lihat Catatan Teknis 45.
Kelas CLongBinary
Objek CLongBinary adalah shell sederhana di sekitar HGLOBAL
handel ke blok penyimpanan yang dialokasikan pada tumpukan. Saat mengikat kolom tabel yang berisi objek besar biner, RFX mengalokasikan HGLOBAL
handel saat perlu mentransfer data ke kumpulan rekaman dan menyimpan handel di CLongBinary
bidang kumpulan rekaman.
Pada gilirannya HGLOBAL
, Anda menggunakan handel, m_hData
, untuk bekerja dengan data itu sendiri, beroperasi di atasnya seperti yang Anda lakukan pada data penanganan apa pun. Di sinilah CByteArray menambahkan kemampuan.
Perhatian
Objek CLongBinary tidak dapat digunakan sebagai parameter dalam panggilan fungsi. Selain itu, implementasinya, yang memanggil ::SQLGetData
, selalu memperlambat performa gulir untuk rekam jepret yang dapat digulir. Ini mungkin juga benar ketika Anda menggunakan ::SQLGetData
panggilan sendiri untuk mengambil kolom skema dinamis.
Baca juga
Recordset (ODBC)
Recordset: Mendapatkan SUM dan Hasil Agregat Lainnya (ODBC)
Pertukaran Bidang Rekaman (RFX)
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