การใช้การเข้าถึงแบบ static ผู้บริโภคของคุณต้องมีระเบียนผู้ใช้ บันทึกผู้ใช้คลาส c ++ที่ประกอบด้วยองค์ประกอบของข้อมูลเพื่อป้อนข้อมูลของหมายเลขอ้างอิงหรือผลผลิตได้ ตัวช่วยสร้างวัตถุ ATL สร้างระเบียนผู้ใช้สำหรับผู้บริโภคของคุณ คุณสามารถเพิ่มวิธีการไปยังระเบียนผู้ใช้สำหรับงานที่เลือกเช่นการจัดการคำสั่ง?
รหัสต่อไปนี้แสดงตัวอย่างระเบียนที่จัดการกับคำสั่ง ในระเบียนผู้ใช้BEGIN_OLUMN_MAPแทน rowset ในข้อมูลที่ส่งผ่านไปยังผู้บริโภคที่ได้จากตัวให้บริการการ BEGIN_PARAM_MAPแสดงชุดของคำสั่งพารามิเตอร์ ตัวอย่างนี้ใช้คลาสCCommandในการจัดการกับพารามิเตอร์คำสั่ง ข้อมูลสมาชิกในรายการแผนที่แสดงนาทีเป็นหนึ่งบล็อกติดกันของหน่วยความจำสำหรับแต่ละอินสแตนซ์ของคลาส แมโคCOLUMN_ENTRYสอดคล้องกับแมโคPROVIDER_COLUMN_ENTRYผู้ให้บริการทางด้าน?
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแมโคCOLUMN_MAPและPARAM_MAPดูแมโคสำหรับ OLE DB Consumer Templates?
คลาส CArtists
{
สาธารณะ:
/ / องค์ประกอบข้อมูล
CHAR m_szFirstName [20];
M_szLastName [30]; CHAR
m_nAge ย่อ
/ / แสดงผลรวมแผนที่
BEGIN_COLUMN_MAP(CArtists)
COLUMN_ENTRY (1, m_szFirstName)
COLUMN_ENTRY (2, m_szLastName)
COLUMN_ENTRY (3, m_nAge)
END_COLUMN_MAP()
/ / แผนที่การผูกพารามิเตอร์
BEGIN_PARAM_MAP(CArtists)
COLUMN_ENTRY (1, m_nAge)
END_PARAM_MAP
}
ตัวอย่างต่อไปนี้แสดงระเบียนผู้ใช้ปรับเปลี่ยนเพื่อสนับสนุนหลาย accessors บน rowset แทนของBEGIN_COLUMN_MAPและEND_COLUMN_MAPใช้BEGIN_ACCESSOR_MAPและBEGIN_ACCESSORสำหรับการเข้าถึงแต่ละ แมโคBEGIN_ACCESSORระบุหมายเลขการเข้าถึง (ตรงข้ามจากศูนย์) และไม่ว่าการเข้าถึงเป็นการ autoaccessor Autoaccessors โทรGetDataเพื่อเรียกใช้ข้อมูลในการโทรไปยังMoveNextโดยอัตโนมัติ Accessors-อัตโนมัติไม่ต้องให้คุณเรียกใช้ข้อมูลอย่างชัดเจน ใช้การเข้าถึงแบบไม่อัตโนมัติหากคุณถูกผูกกับเขตข้อมูลที่มีขนาดใหญ่ (เช่นรูปภาพบิตแมป) ที่คุณอาจไม่ต้องการเรียกข้อมูลสำหรับระเบียนทั้งหมด?
คลาส CMultiArtists
{
สาธารณะ:
/ / องค์ประกอบข้อมูล
CHAR m_szFirstName [20];
M_szLastName [30]; CHAR
m_nAge ย่อ
/ / แสดงผลรวมแผนที่
BEGIN_ACCESSOR_MAP (CMultiArtists, 2)
BEGIN_ACCESSOR (0, true)
COLUMN_ENTRY (1, m_szFirstName)
COLUMN_ENTRY (2, m_szLastName)
END_ACCESSOR()
BEGIN_ACCESSOR (1, false) / / ไม่ตัวเข้าถึงโดยอัตโนมัติ
COLUMN_ENTRY (3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
}