โครงสร้างของCDaoFieldInfoมีแบบฟอร์มต่อไปนี้:
struct CDaoFieldInfo
{
nbsp CString m_strName / / หลัก
m_nType ย่อ / / หลัก
ยาว m_lSize / / หลัก
ยาว m_lAttributes / / หลัก
m_nOrdinalPosition ย่อ / / รอง
BOOL m_bRequired / / รอง
BOOL m_bAllowZeroLength / / รอง
ยาว m_lCollatingOrder / / รอง
CString m_strForeignName / / รอง
CString m_strSourceField / / รอง
CString m_strSourceTable / / รอง
CString m_strValidationRule / / ทั้งหมด
CString m_strValidationText / / ทั้งหมด
CString m_strDefaultValue / / ทั้งหมด
}(&N)
CDaoFieldInfoโครงสร้างประกอบด้วยข้อมูลเกี่ยวกับวัตถุเขตข้อมูลกำหนดไว้สำหรับ data access objects (DAO) อ้างอิงเป็น Primary, Secondary และทั้งหมดข้างต้นบ่งชี้วิธีที่ข้อมูลจะถูกส่งกลับ โดยฟังก์ชันGetFieldInfoสมาชิกในคลาCDaoTableDef, CDaoQueryDefและCDaoRecordset?
วัตถุเขตข้อมูลจะไม่ถูกแสดง โดยมีคลาส MFC แทน วัตถุ DAO MFC วัตถุคลาสที่ต่อไปที่ต้นแบบประกอบด้วยคอลเลกชันของวัตถุเขตข้อมูล: เขตข้อมูลCDaoTableDef, CDaoRecordsetและCDaoQueryDef เรียนเหล่านี้ใส่ฟังก์ชันของสมาชิกในการเข้าถึงบางรายการแต่ละฟิลด์ข้อมูล หรือคุณสามารถเข้าถึงได้ทั้งหมดในครั้งเดียวกับวัตถุCDaoFieldInfoโดยการเรียกฟังก์ชันของวัตถุประกอบด้วยสมาชิกGetFieldInfo?
นอกเหนือจากการใช้สำหรับการตรวจสอบคุณสมบัติของวัตถุ คุณยังสามารถใช้CDaoFieldInfoสร้างมีพารามิเตอร์การป้อนข้อมูลสำหรับการสร้างเขตข้อมูลใหม่ในตัว tabledef มีตัวเลือกที่ง่ายกว่าสำหรับงานนี้ แต่ถ้าคุณต้องการให้ตัวควบคุมอย่างเข้มงวดขึ้น คุณสามารถใช้รุ่นCDaoTableDef::CreateFieldที่ใช้พารามิเตอร์CDaoFieldInfo?
สมาชิก
m_strName
ชื่อวัตถุเขตข้อมูลไม่ซ้ำกัน สำหรับรายละเอียด ดูหัวข้อ "ชื่อคุณสมบัติ" ในวิธีใช้ DAO?
m_nType
ค่าที่บ่งชี้ว่า ชนิดข้อมูลของเขตข้อมูลนั้น ดูรายละเอียดในหัวข้อ "ชนิดคุณสมบัติ" ในวิธีใช้ DAO ค่าของคุณสมบัตินี้อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
หมายเหตุnbsp ใช้ชนิดข้อมูลสายอักขระสำหรับข้อมูลไบนารี ซึ่งทำให้ข้อมูลของคุณผ่าน Unicode/ANSI แปลชั้นที่ เป็นผลในการเพิ่มค่าใช้จ่าย และไม่คาดคิดอาจแปล(&N)?
m_lSize
ค่าที่บ่งชี้ขนาดสูงสุด ไบต์ วัตถุ DAO ฟิลด์ที่ประกอบด้วยข้อความหรือขนาดของวัตถุเขตข้อมูลที่ประกอบด้วยค่าข้อความหรือตัวเลขคง ที่ ดูรายละเอียดในหัวข้อ "คุณสมบัติขนาด" ในวิธีใช้ DAO ขนาดสามารถเป็นหนึ่งในค่าต่อไปนี้:
| ชนิด | ขนาด (ไบต์) | คำอธิบาย |
| dbBoolean | 1 ไบต์ | ใช่/ไม่ใช่ (เหมือน True/False) |
| dbByte | 1 | ไบต์ |
| dbInteger | 2 | จำนวนเต็ม |
| dbLong | 4 | ความยาว |
| dbCurrency | 8 | สกุลเงิน (COleCurrency) |
| dbSingle | 4 | เดียว |
| dbDouble | 8 | สองเท่า |
| dbDate | 8 | วัน / เวลา (COleDateTime) |
| dbText | 1 - 255 | ข้อความ (CString) |
| dbLongBinary | 0 | ยาวสอง (OLE Object CByteArray ใช้แทนCLongBinary) |
| dbMemo | 0 | บันทึก (CString) |
| dbGUID | 16 | Globally Identifier/สามารถ เฉพาะรหัสเฉพาะใช้กับการเรียกกระบวนการระยะไกล? |
m_lAttributes
ระบุลักษณะของวัตถุเขตข้อมูลมีอยู่ โดย tabledef, recordset, querydef หรือดัชนีวัตถุ ค่าส่งกลับจะเป็นผลรวมของค่าคงเหล่านี้ สร้างขึ้น ด้วยตัวดำเนินการ OR ระดับบิต (|) c ++:
เมื่อต้องการตรวจสอบการตั้งค่าของคุณสมบัตินี้ คุณสามารถใช้ c ++ที่ระดับบิต- และตัวดำเนินการ (แอมป์;) เพื่อทดสอบสำหรับคุณลักษณะเฉพาะได้ เมื่อต้องการตั้งค่าแอตทริบิวต์ทั้งหลาย คุณสามารถรวมเหล่านั้น โดยรวมค่าคงที่เหมาะสมกับตัวดำเนินการ OR ระดับบิต (&|) สำหรับรายละเอียด ดูหัวข้อ "แอตทริบิวต์คุณสมบัติ" ในวิธีใช้ DAO?
m_nOrdinalPosition
ค่าที่ระบุลำดับหมายเลขที่คุณต้องการให้เขตข้อมูลแสดง ด้วยวัตถุเขตข้อมูล DAO แสดงสัมพันธ์กับเขตข้อมูลอื่น ๆ คุณสามารถตั้งค่าคุณสมบัตินี้กับCDaoTableDef::CreateField สำหรับรายละเอียด ดูหัวข้อ "OrdinalPosition คุณสมบัติ" ในวิธีใช้ DAO?
m_bRequired
บ่งชี้ว่า วัตถุเขตข้อมูล DAO ต้องมีค่าไม่เป็น Null หากคุณสมบัตินี้เป็นจริงฟิลด์อนุญาตให้ค่า Null ถ้าจำเป็นต้องถูกตั้งค่าเป็นเท็จเขตข้อมูลสามารถประกอบด้วยค่า Null เป็นค่าที่ตรงกับเงื่อนไขที่ระบุ โดยการตั้งค่าคุณสมบัติ AllowZeroLength และกฎการตรวจสอบ ได้ ดูรายละเอียดในหัวข้อ "จำเป็นต้องใช้คุณสมบัติ" ในวิธีใช้ DAO คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
m_bAllowZeroLength
บ่งชี้ว่า เป็นสตริงว่าง ("") จะเป็นค่าที่ถูกต้องของวัตถุ DAO เขตข้อมูลมีชนิดข้อมูล Text หรือ Memo หากคุณสมบัตินี้เป็นจริงเป็นสตริงที่ว่างเปล่าเป็นค่าถูกต้อง คุณสามารถตั้งค่าคุณสมบัตินี้เป็นเท็จเพื่อให้แน่ใจว่า คุณไม่สามารถใช้เป็นสตริงว่างเมื่อต้องการตั้งค่าของเขตข้อมูล ดูรายละเอียดในหัวข้อ "AllowZeroLength คุณสมบัติ" ในวิธีใช้ DAO คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
m_lCollatingOrder
ระบุลำดับการจัดเรียงลำดับข้อความสำหรับการเปรียบเทียบสายอักขระหรือการเรียงลำดับ ดูรายละเอียดในหัวข้อ "การกำหนด Windows รีจิสทรีการตั้งค่าสำหรับ Data Access" ในวิธีใช้ DAO สำหรับรายการของค่าเป็นไปได้ที่ส่งกลับ ดูสมาชิกm_lCollatingOrderของโครงสร้างCDaoDatabaseInfo คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
m_strForeignName
ค่าที่ ความสัมพันธ์ ระบุชื่อของวัตถุ DAO เขตข้อมูลในตารางต่างประเทศที่สอดคล้องกับเขตข้อมูลในตารางหลัก สำหรับรายละเอียด ดูหัวข้อ "ForeignName คุณสมบัติ" ในวิธีใช้ DAO?
m_strSourceField
บ่งชี้ชื่อของเขตข้อมูลที่เป็นแหล่งของข้อมูลสำหรับวัตถุ DAO เขตข้อมูลอยู่ โดยการ tabledef, recordset หรือวัตถุ querydef ต้นฉบับ คุณสมบัตินี้บ่งชี้ว่า เกี่ยวข้องกับวัตถุเขตข้อมูลชื่อเขตข้อมูลต้นฉบับ ตัวอย่างเช่น คุณสามารถใช้คุณสมบัตินี้เพื่อระบุแหล่งต้นฉบับของข้อมูลในเขตข้อมูลแบบสอบถามชื่อไม่เกี่ยวข้องกับชื่อของเขตข้อมูลในตารางต้นแบบ สำหรับรายละเอียด ดูหัวข้อ "SourceField, SourceTable คุณสมบัติ" ในวิธีใช้ DAO คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
m_strSourceTable
บ่งชี้ชื่อของตารางที่เป็นแหล่งของข้อมูลสำหรับวัตถุ DAO เขตข้อมูลอยู่ โดยการ tabledef, recordset หรือวัตถุ querydef ต้นฉบับ คุณสมบัตินี้บ่งชี้ว่า เกี่ยวข้องกับวัตถุเขตข้อมูลชื่อตารางต้นฉบับ ตัวอย่างเช่น คุณสามารถใช้คุณสมบัตินี้เพื่อระบุแหล่งต้นฉบับของข้อมูลในเขตข้อมูลแบบสอบถามชื่อไม่เกี่ยวข้องกับชื่อของเขตข้อมูลในตารางต้นแบบ สำหรับรายละเอียด ดูหัวข้อ "SourceField, SourceTable คุณสมบัติ" ในวิธีใช้ DAO คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
m_strValidationRule
ค่าที่ตรวจสอบข้อมูลในเขตข้อมูลเมื่อมีการเปลี่ยนแปลง หรือเพิ่มลงในตาราง ดูรายละเอียดในหัวข้อ "กฎการตรวจสอบคุณสมบัติ" ในวิธีใช้ DAO คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
สำหรับข้อมูลที่เกี่ยวข้องเกี่ยวกับ tabledefs ดูสมาชิกm_strValidationRuleของโครงสร้างCDaoTableDefInfo?
m_strValidationText
ค่าที่ระบุข้อความของข้อความที่โปรแกรมประยุกต์ของคุณแสดงถ้าค่าของฟิลด์วัตถุ DAO ไม่เป็นไปตามกฎการตรวจสอบที่ระบุ โดยการตั้งค่าคุณสมบัติกฎการตรวจสอบ ดูรายละเอียดในหัวข้อ "ข้อความตรวจสอบคุณสมบัติ" ในวิธีใช้ DAO คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
m_strDefaultValue
ค่าเริ่มต้นของเขตข้อมูลวัตถุ DAO เมื่อสร้างเรกคอร์ดใหม่ การตั้งค่าคุณสมบัติค่าเริ่มต้นถูกป้อนเป็นค่าสำหรับเขตข้อมูลโดยอัตโนมัติ ดูรายละเอียดในหัวข้อ "คุณสมบัติค่าเริ่มต้น" ในวิธีใช้ DAO คุณสามารถตั้งค่าคุณสมบัตินี้ให้เป็น tabledef กับCDaoTableDef::CreateField?
ความคิดเห็น
ข้อมูลที่ดึงข้อมูล โดยฟังก์ชันสมาชิกGetFieldInfo (ของชั้นที่ประกอบด้วยเขตข้อมูล) จะเก็บไว้ในโครงสร้างแบบCDaoFieldInfo เรียกใช้ฟังก์ชันGetFieldInfoสมาชิกของวัตถุประกอบด้วยคอลเลกชันซึ่งมีเขตข้อมูลวัตถุเขตข้อมูลจะถูกเก็บอยู่ CDaoFieldInfoยังกำหนดฟังก์ชันการถ่ายโอนข้อมูลสมาชิกในการสร้างการตรวจแก้จุดบกพร่อง คุณสามารถใช้ถ่ายโอนข้อมูลเพื่อการถ่ายโอนข้อมูลเนื้อหาของวัตถุCDaoFieldInfo?
สำหรับข้อมูลเกี่ยวกับการใช้และโครงสร้างอื่น ๆ ข้อมูล DAO MFC นี้ ให้ดูบทความ DAO คอลเลกชัน: การขอรับข้อมูลเกี่ยวกับดาววัตถุในVisual c ++ Programmer ของคำแนะนำ?
ดูเพิ่มเติมnbspCDaoTableDef::GetFieldInfo, CDaoRecordset::GetFieldInfo, CDaoQueryDef::GetFieldInfo(&N)