บันทึกผู้ใช้

ผู้ใช้ระเบียนแสดงโครงสร้างรหัสและข้อมูลที่แสดงข้อมูลคอลัมน์สำหรับการ rowset สามารถสร้างระเบียนผู้ใช้เวลาคอมไพล์ หรือเวลาเรียกใช้งาน เมื่อคุณสร้างตัวให้บริการการใช้ตัวช่วยสร้างวัตถุ ATL ตัวช่วยสร้างสร้างระเบียนผู้ใช้เริ่มต้นที่มีลักษณะดังนี้:

คลา CWindowsFile:
   WIN32_FIND_DATA สาธารณะ
{
สาธารณะ:

BEGIN_PROVIDER_COLUMN_MAP(CWindowsFile)
   PROVIDER_COLUMN_ENTRY ("FileAttributes", 1, dwFileAttributes)
   PROVIDER_COLUMN_ENTRY ("FileSizeHigh", 2, nFileSizeHigh)
   PROVIDER_COLUMN_ENTRY ("FileSizeLow", 3, nFileSizeLow)
   PROVIDER_COLUMN_ENTRY ("ชื่อแฟ้ม" 4, cFileName)
   PROVIDER_COLUMN_ENTRY ("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()

}

OLE DB Provider แม่แบบจัดการทั้งหมด OLE DB เกร็ดเกี่ยวกับการโต้ตอบกับไคลเอ็นต์ เพื่อซื้อข้อมูลคอลัมน์จำเป็นสำหรับการตอบสนอง ผู้ให้บริการเรียกฟังก์ชันGetColumnInfoซึ่งคุณต้องวางในระเบียนผู้ใช้:

แม่แบบ lt คลาส T >
คง ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

แมโคPROVIDER_COLUMN_MAPความช่วยเหลือในการสร้างฟังก์ชันGetColumnInfo:

เมื่อสร้างเรกคอร์ดผู้ใช้เวลาเรียกใช้งานGetColumnInfoใช้พารามิเตอร์pThisรับเป็นตัวชี้การอินสแตนซ์ rowset หรือคำสั่ง คำสั่งและ rowsets ต้องสนับสนุนอินเทอร์เฟซสำหรับIColumnsInfoเพื่อให้สามารถได้รับข้อมูลของคอลัมน์จากนี้ชี้?

นอกจากนี้คุณอย่างชัดเจนสามารถแทนGetColumnInfoในระเบียนผู้ใช้ ตามที่แสดงที่นี่:

แม่แบบ lt คลาส T >
คง ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

นี้จะเท่ากับ:

คง ATLCOLUMNINFO * GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
คง ATLCOLUMNINFO * GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)

CommandClassและRowsetClassเป็น rowset ที่ใช้ระเบียนผู้ใช้และคำสั่ง?

ตัวอย่างเช่นเพิ่มเติมวิธีการแทนที่GetColumnInfoในระเบียนผู้ใช้ ดูการสร้างเป็นผู้ให้บริการแบบง่าย ๆ?

กลับสู่สถาปัตยกรรม OLE DB Provider แม่

Index