CDaoIndexInfo โครงสร้าง

โครงสร้างของCDaoIndexInfoมีแบบฟอร์มต่อไปนี้:

struct CDaoIndexInfo {
 nbsp  CDaoIndexInfo ()                   / / กำหนด

CString m_strName                  / / หลัก
    CDaoIndexFieldInfo * m_pFieldInfos  / / หลัก
    m_nFields ย่อ                    / / หลัก
    BOOL m_bPrimary                    / / รอง
    BOOL m_bUnique                     / / รอง
    BOOL m_bClustered                  / / รอง
    BOOL m_bIgnoreNulls                / / รอง
    BOOL m_bRequired                   / / รอง
    BOOL m_bForeign                    / / รอง
    ยาว m_lDistinctCount              / / ทั้งหมด

/ / ข้างล่างนี้ / / แสดงความคิดเห็นการใช้งาน:
    / / Destructor ไม่จัด
}(&N)
 

CDaoIndexInfoโครงสร้างประกอบด้วยข้อมูลเกี่ยวกับวัตถุของดัชนีที่กำหนดสำหรับวัตถุ access ข้อมูล (DAO) อ้างอิงเป็น Primary, Secondary และทั้งหมดข้างต้นบ่งชี้วิธีที่ข้อมูลจะถูกส่งกลับ โดยฟังก์ชันGetIndexInfoสมาชิกในชั้นเรียนที่CDaoTableDefและCDaoRecordset?

วัตถุที่ดัชนีจะไม่ถูกแสดง โดยมีคลาส MFC แทน วัตถุ DAO MFC วัตถุคลาCDaoTableDefหรือCDaoRecordsetที่ต้นแบบประกอบด้วยชุดของวัตถุดัชนี เรียกว่าคอลเลกชันของดัชนี เรียนเหล่านี้ใส่ฟังก์ชันของสมาชิกในการเข้าถึงแต่ละรายการดัชนีข้อมูล หรือคุณสามารถเข้าถึงได้ทั้งหมดในครั้งเดียวกับวัตถุCDaoIndexInfoโดยการเรียกฟังก์ชันของวัตถุประกอบด้วยสมาชิกGetIndexInfo?

CDaoIndexInfoมีการกำหนดและ destructor แบบเพื่อจัดสรรอย่างเหมาะสม และข้อมูลฟิลด์ดัชนีในm_pFieldInfos deallocate?

สมาชิก

m_strName

ชื่อวัตถุเขตข้อมูลไม่ซ้ำกัน สำหรับรายละเอียด ดูหัวข้อ "ชื่อคุณสมบัติ" ในวิธีใช้ DAO?

m_pFieldInfos

ตัวชี้ไปยังอาร์เรย์CDaoIndexFieldInfoวัตถุที่ระบุว่า เขตข้อมูลใด tabledef หรือชุดระเบียนที่มีเขตข้อมูลคีย์ในดัชนี แต่ละวัตถุที่ระบุเขตข้อมูลหนึ่งในดัชนี จากน้อยไปสั่งดัชนีเริ่มต้นจะมาก วัตถุดัชนีสามารถกำหนดอย่าง น้อยหนึ่งเขตข้อมูลที่แสดงดัชนีคีย์สำหรับแต่ละระเบียนได้ สิ่งเหล่านี้สามารถได้จาก descending หรือผสมกัน?

m_nFields

จำนวนของเขตข้อมูลที่จัดเก็บไว้ในm_pFieldInfos?

m_bPrimary

ถ้าคุณสมบัติหลักเป็นจริงวัตถุดัชนีแสดงดัชนีเป็นหลัก ดัชนีแบบหลักประกอบด้วยเขตข้อมูลอย่าง น้อยหนึ่งที่จะระบุระเบียนทั้งหมดในตารางในลำดับกำหนดไว้ล่วงหน้า เนื่องจากเขตข้อมูลดัชนีต้องไม่ซ้ำกัน คุณสมบัติไม่ซ้ำกันของวัตถุของดัชนีที่กำหนดเป็นจริงใน DAO ถ้าดัชนีหลักประกอบด้วยเขตข้อมูลมากกว่าหนึ่ง แต่ละเขตข้อมูลสามารถประกอบด้วยค่าซ้ำกัน แต่ต้องไม่ซ้ำกันแต่ละชุดของค่าจากเขตข้อมูลของดัชนีทั้งหมด ดัชนีหลักประกอบด้วยคีย์สำหรับตาราง และมักจะประกอบด้วยเขตข้อมูลเดียวกันเป็นคีย์หลัก?

เมื่อคุณตั้งค่าคีย์หลักสำหรับตาราง คีย์หลักถูกกำหนดเป็นดัชนีหลักสำหรับตารางโดยอัตโนมัติ สำหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อ "หลักคุณสมบัติ" และ "คุณสมบัติเฉพาะ" ในวิธีใช้ DAO?

หมายเหตุnbsp  สามารถมี มากที่สุด ดัชนีหลักหนึ่งในตาราง(&N)?

m_bUnique

บ่งชี้ว่า วัตถุดัชนีแสดงดัชนีที่ไม่ซ้ำสำหรับตาราง หากคุณสมบัตินี้เป็นจริงวัตถุดัชนีแสดงถึงดัชนีที่ไม่ซ้ำ ดัชนีที่ไม่ซ้ำที่ประกอบด้วยเขตข้อมูลอย่าง น้อยหนึ่งที่ในเชิงตรรกะจัดเรียงระเบียนทั้งหมดในตารางใบสั่งเฉพาะ การกำหนดไว้ล่วงหน้า ถ้าดัชนีประกอบด้วยเขตข้อมูลหนึ่ง ค่าในเขตข้อมูลนั้นต้องไม่ซ้ำกันสำหรับตารางทั้งหมด ถ้าดัชนีประกอบด้วยเขตข้อมูลมากกว่าหนึ่ง แต่ละเขตข้อมูลสามารถประกอบด้วยค่าซ้ำกัน แต่ต้องไม่ซ้ำกันแต่ละชุดของค่าจากเขตข้อมูลของดัชนีทั้งหมด?

ถ้าคุณสมบัติทั้งเอกลักษณ์และหลักของวัตถุดัชนีถูกตั้งค่าเป็นTRUEดัชนีไม่ซ้ำกัน และหลัก: จะระบุเร็กคอร์ดทั้งหมดในตารางในลำดับกำหนดไว้ล่วงหน้า ลอจิคัล ถ้าคุณสมบัติหลักถูกตั้งค่าเป็นFALSEดัชนีคือ ดัชนีแบบทุติยภูมิ ดัชนีรอง (ทั้งคีย์ และไม่) จัดเรียงระเบียนในลำดับกำหนดไว้ล่วงหน้าโดยไม่ต้องทำหน้าที่เป็นตัวระบุสำหรับระเบียนในตารางในเชิงตรรกะ?

สำหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อ "หลักคุณสมบัติ" และ "คุณสมบัติเฉพาะ" ในวิธีใช้ DAO?

m_bClustered

บ่งชี้ว่า วัตถุดัชนีแสดงดัชนีแบบคลัสเตอร์สำหรับตาราง หากคุณสมบัตินี้เป็นจริงวัตถุดัชนีแสดงดัชนีกลุ่ม มิฉะนั้น ดังกล่าวไม่ ดัชนีแบบคลัสเตอร์ประกอบอย่างใดอย่างหนึ่ง หรือมากกว่า nonkey เขตข้อมูลที่นำมารวมกัน จัดเรียงระเบียนทั้งหมดในตารางในลำดับกำหนดไว้ล่วงหน้า ข้อมูลในตารางถูกตามตัวอักษรเก็บไว้ในลำดับที่ระบุ โดยดัชนีคลัสเตอร์กับดัชนีแบบคลัสเตอร์ ดัชนีแบบคลัสเตอร์ให้มีประสิทธิภาพเข้ากับระเบียนในตาราง สำหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อ "จับกลุ่มคุณสมบัติ" ในวิธีใช้ DAO?

หมายเหตุnbsp  Clustered คุณสมบัติจะถูกละเว้นสำหรับฐานข้อมูลที่ใช้ Microsoft Jet database engine เนื่องจาก Jet database engine ไม่สนับสนุนดัชนีคลัสเตอร์(&N)?

m_bIgnoreNulls

บ่งชี้ว่า มีรายการดัชนีสำหรับระเบียนที่มีค่า Null ในเขตข้อมูลของดัชนี หากคุณสมบัตินี้เป็นจริงเขตข้อมูลที่ มีค่า Null ไม่มีรายการดัชนี ทำให้การค้นหาระเบียนโดยใช้เขตข้อมูลได้รวดเร็วขึ้น คุณสามารถกำหนดดัชนีสำหรับเขตข้อมูล ถ้าคุณอนุญาตให้มีรายการค่า Null ในเขตข้อมูลมีการทำดัชนี และคาดว่าหลายรายการเพื่อเป็นค่า null คุณสามารถตั้งค่าคุณสมบัติ IgnoreNulls สำหรับวัตถุที่ดัชนีเป็นจริงเพื่อลดจำนวนของพื้นที่เก็บข้อมูลที่ใช้ในดัชนี การตั้งค่าคุณสมบัติ IgnoreNulls และการตั้งค่าคุณสมบัติจำเป็นร่วมกันกำหนดว่า ระเบียนที่ มีค่า Null ดัชนีมีรายการดัชนี ตามแสดงในตารางต่อไปนี้?

IgnoreNulls ต้องระบุ ไม่มีค่าในฟิลด์ดัชนี
จริง เท็จ ค่า null ที่ได้รับอนุญาต ไม่มีรายการดัชนีที่เพิ่ม?
เท็จ เท็จ ค่า null ที่ได้รับอนุญาต รายการดัชนีที่เพิ่ม?
True หรือ False จริง ค่า null ที่ไม่ได้รับอนุญาต ไม่มีรายการดัชนีที่เพิ่ม?

สำหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อ "IgnoreNulls คุณสมบัติ" ในวิธีใช้ DAO?

m_bRequired

บ่งชี้ว่า วัตถุดัชนีดาวต้องมีค่าไม่เป็น Nullหากคุณสมบัตินี้เป็นจริงวัตถุดัชนีไม่อนุญาตให้ค่า Null สำหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อ "จำเป็นต้องใช้คุณสมบัติ" ในวิธีใช้ DAO?

เคล็ดลับnbsp  เมื่อคุณสามารถตั้งค่าคุณสมบัตินี้สำหรับวัตถุดัชนีดาวหรือวัตถุเขตข้อมูล (ที่มีอยู่ โดยมี tabledef, recordset หรือวัตถุ querydef), ตั้งค่าสำหรับวัตถุเขตข้อมูล มีการตรวจสอบความถูกต้องของการตั้งค่าคุณสมบัติสำหรับเขตข้อมูลวัตถุก่อนว่าวัตถุดัชนี(&N)?

m_bForeign

บ่งชี้ว่า ดัชนีวัตถุแทน foreign key ในตาราง หากคุณสมบัตินี้เป็นจริงดัชนีแทน foreign key ในตารางนั้น Foreign key ประกอบด้วย น้อยหนึ่งเขตข้อมูลในตารางนอกซึ่งจะระบุแถวในตารางหลัก Microsoft Jet database engine สร้างดัชนีวัตถุสำหรับตารางต่างประเทศ และตั้งค่าคุณสมบัติต่างประเทศเมื่อคุณสร้างความสัมพันธ์ที่บังคับให้มี referential integrity สำหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อ "คุณสมบัติต่างประเทศ" ในวิธีใช้ DAO?

m_lDistinctCount

บ่งชี้ว่า จำนวนของค่าไม่ซ้ำกันสำหรับวัตถุที่ดัชนีที่มีอยู่ในตารางเกี่ยวข้อง การตรวจสอบคุณสมบัติ DistinctCount เพื่อพิจารณาจำนวนค่าที่ไม่ซ้ำกัน หรือแป้น ในดัชนี คีย์ใด ๆ จะนับเพียงครั้งเดียว ถึงแม้ว่าอาจจะมีเกิดขึ้นหลายครั้งของค่านั้นถ้าดัชนีช่วยให้ค่าที่ซ้ำกัน ข้อมูลนี้มีประโยชน์ในโปรแกรมประยุกต์ที่พยายามเข้าถึงข้อมูลการปรับให้เหมาะสม โดยประเมินดัชนีข้อมูล จำนวนค่าที่ไม่ซ้ำกันเป็นที่รู้จักกันที่ cardinality ของวัตถุดัชนี คุณสมบัติ DistinctCount จะไม่เป็นจำนวนแป้นที่แท้จริงในเวลาเฉพาะเสมอ ตัวอย่าง การเปลี่ยนแปลงที่เกิดขึ้นจากการย้อนกลับธุรกรรมจะไม่มีผลทันทีในคุณสมบัติ DistinctCount สำหรับข้อมูลเพิ่มเติม ให้ดูหัวข้อ "DistinctCount คุณสมบัติ" ในวิธีใช้ DAO?

ความคิดเห็น

ข้อมูลที่ดึงข้อมูล โดยฟังก์ชันGetIndexInfoสมาชิกของวัตถุ tabledef ถูกเก็บไว้ในโครงสร้างแบบCDaoIndexInfo เรียกใช้ฟังก์ชันของชุดเก็บรวบรวมดัชนีซึ่งมีวัตถุดัชนีจะถูกเก็บวัตถุ tabledef ประกอบด้วยสมาชิกGetIndexInfo CDaoIndexInfoยังกำหนดฟังก์ชันการถ่ายโอนข้อมูลสมาชิกในการสร้างการตรวจแก้จุดบกพร่อง คุณสามารถใช้ถ่ายโอนข้อมูลเพื่อการถ่ายโอนข้อมูลเนื้อหาของวัตถุCDaoIndexInfo?

สำหรับข้อมูลเกี่ยวกับการใช้และโครงสร้างอื่น ๆ ข้อมูล DAO MFC นี้ ให้ดูบทความ DAO คอลเลกชัน: การขอรับข้อมูลเกี่ยวกับดาววัตถุในVisual c ++ Programmer ของคำแนะนำ?

ดูเพิ่มเติมnbspCDaoTableDef::GetIndexInfo(&N)

Index