หลังจากที่คุณเปิดแหล่งข้อมูล เซสชัน และวัตถุ rowset คุณสามารถดึงข้อมูล ขึ้นอยู่กับชนิดของการเข้าถึงที่คุณกำลังใช้ คุณอาจจำเป็นต้องผูกคอลัมน์ การดึงข้อมูล ทำตามขั้นตอนเหล่านี้:
/ / จาก CDBTreeView::OnQueryEdit DBViewer ตัวอย่าง
/ / รับข้อมูลคอลัมน์
ULONG ulColumnsnbsp = 0
DBCOLUMNINFO * pColumnInfo = NULL
LPOLESTR pStrings = NULL
ถ้า (อาร์เอสGetColumnInfo(&ulColumns, &pColumnInfo, &pStrings) ! = S_OK)
AfxThrowOLEDBException (rs.m_pRowset, IID_IColumnsInfo);
struct MYBIND * pBind =ใหม่ MYBIND [ulColumns];
อาร์เอสCreateAccessor (sizeof(MYBIND)*ulColumns) ulColumns และ pBind [0],
สำหรับ (ULONG l = 0; l < ulColumns; l ++)
อาร์เอสAddBindEntry (l + 1, DBTYPE_STR, sizeof (TCHAR) * 40 และ pBind [l] .szValue, NULL และ pBind[l].dwStatus)
อาร์เอสBind()
ในขณะที่ (อาร์เอสMoveNext() == S_OK)
{
nbsp / / เพิ่มรหัสเพื่อดึงข้อมูลที่นี่
/ / ถ้าคุณไม่ได้ใช้ตัวเข้าถึง auto เรียกอาร์เอสGetData()
}(&N)
ในขณะที่ (อาร์เอสMoveNext() == S_OK)
{
nbsp / / ใช้ข้อมูลสมาชิกโดยตรง ในกรณีนี้ m_nFooID
/ / ถูกประกาศในระเบียนผู้ใช้ซึ่งได้มาจาก
/ / CAccessor
wsprintf ("%d", rs.m_nFooID);
}(&N)
ในขณะที่ (อาร์เอสMoveNext() == S_OK)
{
nbsp / / ใช้ฟังก์ชันการเข้าถึงแบบไดนามิกเพื่อรับของคุณ
/ / ข้อมูล
ULONG ulColumns =อาร์เอสGetColumnCount()
สำหรับ (ULONG ฉัน = 0 ฉัน < ulColumns; i ++)
{
อาร์เอสGetValue(i)
}
}
ในขณะที่ (อาร์เอสMoveNext() == S_OK)
{
nbsp / / สมาชิกของข้อมูลคุณระบุไว้ในการเรียกใช้
/ / AddBindEntry
wsprintf ("%s", szFoo);
}(&N)