Bagikan melalui


Menggunakan Marka buku

Sebelum membuka set baris, Anda harus memberi tahu penyedia bahwa Anda ingin menggunakan marka buku. Untuk melakukan ini, atur properti ke DBPROP_BOOKMARKStrue di kumpulan properti Anda. Penyedia mengambil marka buku sebagai nol kolom, jadi Anda harus menggunakan makro khusus BOOKMARK_ENTRY dan CBookmark kelas jika Anda menggunakan aksesor statis. CBookmark adalah kelas templat di mana argumen adalah panjang dalam byte buffer bookmark. Panjang buffer yang diperlukan untuk bookmark tergantung pada penyedia. Jika Anda menggunakan penyedia ODBC OLE DB, seperti yang ditunjukkan dalam contoh berikut, buffer harus 4 byte.

class CProducts
{
public:
   CBookmark<4> bookmark;

   BEGIN_COLUMN_MAP(CProducts)
      BOOKMARK_ENTRY(bookmark)
   END_COLUMN_MAP()
};

Kemudian, digunakan oleh kode berikut:

CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_BOOKMARKS, true);

CTable<CAccessor<CProducts>> product;
CSession session;
product.Open(session, "Products", &propset);

Jika Anda menggunakan CDynamicAccessor, buffer diatur secara dinamis pada waktu proses. Dalam hal ini, Anda dapat menggunakan versi CBookmark khusus yang tidak Anda tentukan panjang buffernya. Gunakan fungsi GetBookmark untuk mengambil marka buku dari rekaman saat ini, seperti yang ditunjukkan dalam sampel kode ini:

CTable<CDynamicAccessor> product;
CBookmark<> bookmark;
CDBPropSet propset(DBPROPSET_ROWSET);
CSession session;

propset.AddProperty(DBPROP_BOOKMARKS, true);
product.Open(session, "Products", &propset);
product.MoveNext();
product.GetBookmark(&bookmark);

Untuk informasi tentang mendukung marka buku di penyedia, lihat Dukungan Penyedia untuk Bookmark.

Baca juga

Menggunakan Accessors