CRecordset::Edit

เสมือน โมฆะ Edit( );
โยน ( CDBException, CMemoryException );

หมายเหตุ

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

หมายเหตุnbsp  ถ้าคุณได้ดำเนินการเป็นกลุ่มแถวกำลังนำมา คุณไม่สามารถเรียกแก้ไข นี้จะทำการตรวจสอบเงื่อนไขล้มเหลว แม้ว่าคลาCRecordsetไม่มีกลไกสำหรับการปรับปรุงแถวข้อมูลขนาดใหญ่ คุณสามารถเขียนฟังก์ชันของคุณเอง โดยใช้ฟังก์ชัน ODBC API SQLSetPos สำหรับตัวอย่างของวิธีการทำเช่นนี้ ให้ดูตัวอย่าง DBFETCH สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขนาดใหญ่กำลังนำมาแถว ให้ดูบทความ ชุดระเบียน: กำลังนำระเบียนในกลุ่ม (ODBC)ในVisual c ++ Programmer ของคำแนะนำ(&N)?

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

ในบางกรณี คุณอาจต้องการปรับปรุงคอลัมน์ โดยการทำให้มัน Null (ไม่มีข้อมูลที่ประกอบด้วย) เมื่อต้องการทำเช่นนั้น โทรSetFieldNullกับพารามิเตอร์ของจริงเพื่อทำเครื่องหมายฟิลด์ Null นี้ยังทำให้คอลัมน์มีการปรับปรุง ถ้าคุณต้องการเขียนไปยังแหล่งข้อมูลแม้ว่ายังไม่มีแปลงค่าของเขตข้อมูล โทรSetFieldDirtyกับพารามิเตอร์ของจริง นี้ใช้งานได้แม้ว่าเขตข้อมูลที่มีค่า Null?

ถ้าแหล่งข้อมูลสนับสนุนธุรกรรม คุณสามารถทำการแก้ไขเรียกส่วนของธุรกรรม หมายเหตุว่า คุณควรเรียกCDatabase::BeginTransก่อนการเรียกแก้ไขและหลัง จากที่ได้ถูกเปิดชุดระเบียน โปรด สังเกตว่า การโทรCDatabase::CommitTransไม่ทดแทนสำหรับการเรียกโปรแกรมปรับปรุงเพื่อทำการดำเนินการแก้ไข ดูข้อมูลเพิ่มเติมเกี่ยวกับธุรกรรม คลาสCDatabase?

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

มีการกู้คืนค่าก่อนหน้านี้ของระเบียนปัจจุบันถ้าคุณเลื่อนไปที่ระเบียนใหม่ก่อนการเรียกโปรแกรมปรับปรุง CDBExceptionถูกส่งออกไป ถ้าคุณเรียกแก้ไขสำหรับชุดระเบียนที่ไม่สามารถปรับปรุง หรือไม่มีไม่มีระเบียนปัจจุบัน?

สำหรับข้อมูลเพิ่มเติม ให้ดูบทความ ธุรกรรม (ODBC)และ ชุดระเบียน: ล็อกระเบียน (ODBC)ในVisual c ++ Programmer ของคำแนะนำ?

ตัวอย่าง

 / / ตัวอย่าง CRecordset::Edit
/ / แก้ไขระเบียน
/ / ตั้งค่าบัฟเฟอร์การแก้ไขครั้งแรก
rsCustSet.Edit ()

/ / แล้ว แก้ไขเขตข้อมูลข้อมูลสมาชิกสำหรับเรกคอร์ด
rsCustSet.m_dwCustID = 2795
rsCustSet.m_strCustomer = "Jones Mfg"

/ / สุดท้าย ดำเนินการ
ถ้า (! rsCustSet.Update (&))
 nbsp  / / จัดการความล้มเหลวในการปรับปรุง

ภาพรวม CRecordset |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)

ดูเพิ่มเติมnbspCRecordset::Update, CRecordset::AddNew, CRecordset::Delete, CRecordset::SetFieldDirty, CRecordset::SetFieldNull, CRecordset::CanUpdate, CRecordset::CanTransact, CRecordset::SetLockingMode(&N)

Index