Bagikan melalui


Rekaman Pengguna

Catatan

Wizard Konsumen ATL OLE DB tidak tersedia di Visual Studio 2019 dan yang lebih baru. Anda masih dapat menambahkan fungsionalitas secara manual. Untuk informasi selengkapnya, lihat Membuat Konsumen Tanpa Menggunakan Wizard.

Untuk menggunakan aksesor statis (yaitu, aksesor yang berasal dari CAccessor), konsumen Anda harus memiliki catatan pengguna. Catatan pengguna adalah kelas C++ yang berisi elemen data untuk menangani input atau output. Wizard Konsumen ATL OLE DB menghasilkan catatan pengguna untuk konsumen Anda. Anda dapat menambahkan metode ke rekaman pengguna untuk tugas opsional seperti menangani perintah.

Kode berikut menunjukkan contoh rekaman yang menangani perintah. Dalam catatan pengguna, BEGIN_COLUMN_MAP mewakili himpunan baris data yang diteruskan ke konsumen dari penyedia. BEGIN_PARAM_MAP mewakili sekumpulan parameter perintah. Contoh ini menggunakan kelas CCommand untuk menangani parameter perintah. Anggota data dalam entri peta mewakili offset ke dalam satu blok memori yang berdekatan untuk setiap instans kelas. Makro COLUMN_ENTRY sesuai dengan makro PROVIDER_COLUMN_ENTRY di sisi penyedia.

Untuk informasi selengkapnya tentang makro COLUMN_MAP dan PARAM_MAP, lihat Makro untuk Templat Konsumen OLE DB.

class CArtists
{
public:
// Data Elements
   CHAR m_szFirstName[20];
   CHAR m_szLastName[30];
   short m_nAge;

// Column binding map
BEGIN_COLUMN_MAP(CArtists)
   COLUMN_ENTRY(1, m_szFirstName)
   COLUMN_ENTRY(2, m_szLastName)
   COLUMN_ENTRY(3, m_nAge)
END_COLUMN_MAP()

// Parameter binding map
BEGIN_PARAM_MAP(CArtists)
   COLUMN_ENTRY(1, m_nAge)
END_PARAM_MAP()
};

Rekaman Pengguna yang Dihasilkan Wizard

Jika Anda menggunakan Wizard Konsumen ATL OLE DB untuk menghasilkan konsumen, Anda memiliki pilihan untuk menggunakan Templat OLE DB atau Atribut OLE DB. Kode yang dihasilkan berbeda dalam setiap kasus. Untuk informasi selengkapnya tentang kode ini, lihat Kelas yang Dihasilkan Wizard Konsumen.

Dukungan Rekaman Pengguna untuk Beberapa Aksesor

Untuk diskusi terperinci tentang skenario di mana Anda perlu menggunakan beberapa pengakses, lihat Menggunakan Beberapa Aksesor pada Set Baris.

Contoh berikut menunjukkan catatan pengguna yang dimodifikasi untuk mendukung beberapa aksesor pada set baris. Alih-alih BEGIN_COLUMN_MAP dan END_COLUMN_MAP, BEGIN_ACCESSOR_MAP dan BEGIN_ACCESSOR untuk setiap aksesor. Makro BEGIN_ACCESSOR menentukan nomor aksesor (offset dari nol) dan apakah aksesor adalah autoaccessor. Panggilan GetData Autoaccessors untuk mengambil data secara otomatis pada panggilan ke MoveNext. Aksesor nonautomatik mengharuskan Anda untuk secara eksplisit mengambil data. Gunakan aksesor nonautomatik jika Anda mengikat ke bidang data besar (seperti gambar bitmap) yang mungkin tidak ingin Anda ambil untuk setiap rekaman.

class CMultiArtists
{
public:
// Data Elements
   CHAR m_szFirstName[20];
   CHAR m_szLastName[30];
   short m_nAge;

// Column binding map
BEGIN_ACCESSOR_MAP(CMultiArtists, 2)
   BEGIN_ACCESSOR(0, true)    // true specifies an auto accessor
    COLUMN_ENTRY(1, m_szFirstName)
    COLUMN_ENTRY(2, m_szLastName)
   END_ACCESSOR()
   BEGIN_ACCESSOR(1, false)   // false specifies a manual accessor
    COLUMN_ENTRY(3, m_nAge)
   END_ACCESSOR()
END_ACCESSOR_MAP()
};

Lihat juga

Templat Konsumen OLE DB