ผู้ใช้ระเบียนแสดงโครงสร้างรหัสและข้อมูลที่แสดงข้อมูลคอลัมน์สำหรับการ 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ในระเบียนผู้ใช้ ดูการสร้างเป็นผู้ให้บริการแบบง่าย ๆ?