CDatabase::Open

เสมือน BOOL เปิด ( LPCTSTR lpszDSN, BOOL bExclusive =เท็จ BOOL bReadOnly =เท็จ LPCTSTR lpszConnect = "ODBC BOOL bUseCursorLib = TRUE );
โยน ( CDBException, CMemoryException );

ส่งกลับค่า

ไม่ใช่ศูนย์ถ้าสำเร็จแล้วทำการเชื่อมต่อ มิฉะนั้น 0 ถ้าผู้ใช้เลือกยกเลิกเมื่อปรากฏกล่องโต้ตอบการถามข้อมูลการเชื่อมต่อเพิ่มเติม ในทุกกรณีอื่น ๆ กรอบผิดข้อยกเว้น?

พารามิเตอร์

lpszDSN

ระบุชื่อของแหล่งข้อมูล — ชื่อที่ลงทะเบียนกับ ODBC ผ่านโปรแกรม ODBC Administrator ถ้ามีระบุค่า DSN ในlpszConnect (ในแบบฟอร์ม " DSN = lt แหล่งข้อมูล > "), มันต้องไม่ระบุอีกครั้งในlpszDSN ในกรณีนี้lpszDSNควรเป็นNULL มิฉะนั้น คุณสามารถส่งผ่านค่า NULLถ้าคุณต้องการแสดงผู้ใช้กับกล่องโต้ตอบแหล่งข้อมูลซึ่งผู้ใช้สามารถเลือกแหล่งข้อมูล สำหรับข้อมูลเพิ่มเติม ดูข้อสังเกต?

bExclusive

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

bReadOnly

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

lpszConnect

ระบุสายอักขระเชื่อมต่อ สายอักขระการเชื่อมต่อ concatenates ข้อมูล อาจรวมถึงชื่อของแหล่งข้อมูล รหัสผู้ใช้ถูกต้องในแหล่งข้อมูล สายตรวจสอบผู้ใช้ (รหัสผ่าน ถ้าแหล่งข้อมูลต้องการอย่างใดอย่างหนึ่ง), และข้อมูลอื่น ๆ เชื่อมต่อสายทั้งหมดต้องนำหน้า ด้วยสายอักขระ "ODBC;" (ตัวพิมพ์ใหญ่ หรือตัวพิมพ์เล็ก) "ODBC สตริงที่ใช้เพื่อบ่งชี้ว่า เป็นการเชื่อมต่อกับแหล่งข้อมูล ODBC นี่คือความเข้ากันได้ขึ้นเมื่อรีคลาสรุ่นในอนาคตอาจสนับสนุนแหล่งข้อมูล ODBC ไม่ใช่?

bUseCursorLib

TRUEถ้าคุณต้องการให้เคอร์เซอร์ของ ODBC DLL ไลบรารีจะโหลด เคอร์เซอร์ไลบรารี masks ทำงานบางอย่างของต้นแบบ ODBC ไดรเวอร์ ป้องกันการใช้ dynasets ได้อย่างมีประสิทธิภาพ (ถ้าพวกเขาสนับสนุนโปรแกรมควบคุม) เคอร์เซอร์เดียวเท่านั้นที่ได้รับการสนับสนุนถ้าเคอร์เซอร์ไลบรารีถูกโหลดเป็น snapshot ของที่คงที่และเคอร์เซอร์ไปข้างหน้าเท่านั้น ค่าเริ่มต้นเป็นจริง ถ้าคุณวางแผนที่จะสร้างวัตถุ recordset จากCRecordsetโดยตรงโดยไม่ต้องมาจากนั้น คุณไม่ควรโหลดเคอร์เซอร์ไลบรารี?

หมายเหตุ

เรียกฟังก์ชันนี้สมาชิกการเตรียมใช้งานวัตถุCDatabaseประดิษฐ์ใหม่ วัตถุฐานข้อมูลของคุณต้องถูกเตรียมใช้งานก่อนที่คุณสามารถใช้เพื่อสร้างวัตถุ recordset ที่?

หมายเหตุnbsp  การเรียกฟังก์ชันOpenExสมาชิกเป็นวิธีการที่ต้องการเชื่อมต่อกับแหล่งข้อมูล และการเตรียมใช้งานวัตถุฐานข้อมูลของคุณ(&N)?

ถ้าพารามิเตอร์ในโทรศัพท์ของคุณเปิดไม่ประกอบด้วยข้อมูลเพียงพอในการเชื่อมต่อ โปรแกรมควบคุม ODBC เปิดกล่องโต้ตอบรับข้อมูลที่จำเป็นจากผู้ใช้ เมื่อคุณเรียกใช้เปิดสายอักขระการเชื่อมต่อlpszConnectเก็บอยู่สองต่อสองในวัตถุCDatabaseและได้ ด้วยการเรียกฟังก์ชันGetConnectสมาชิก?

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

นอกจากนี้คุณยังสามารถใช้สายอักขระการเชื่อมต่อหลายระดับของการอนุญาตการล็อกอิน (ละสำหรับวัตถุCDatabaseแตกต่างกัน) หรือ การนำเสนอข้อมูลเฉพาะของแหล่งข้อมูลอื่นได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเชื่อมต่อสาย โปรดดูบทที่ 5 ในการอ้างอิงของ ODBC SDK Programmer?

เป็นไปได้สำหรับความพยายามในการเชื่อมต่อหมดเวลาถ้า ตัวอย่าง DBMS โฮสต์ไม่ หากความพยายามในการเชื่อมต่อล้มเหลวเปิดผิดในCDBException?

ตัวอย่าง

/ / ฝังวัตถุ CDatabase
/ / ในคลาสเอกสารของคุณ
CDatabase m_dbCust

/ / วัตถุเพื่อการเชื่อมต่อแบบ
/ / แหล่งข้อมูล (ไม่ผ่าน)
/ / กล่องโต้ตอบของการเชื่อมต่อ ODBC
/ / เสมอจะยังคงถูกซ่อนอยู่
m_dbCust.Open (_T ("MYDATASOURCE"), FALSE
 nbsp             เท็จ _T ("ODBCUID = JOES "),

// ...หรือ แบบสอบถามผู้ใช้ทั้งหมด
/ / ข้อมูลการเชื่อมต่อ
m_dbCust.Open (NULL)(&N)

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

ดูเพิ่มเติมnbspCDatabase::OpenEx, CDatabase::CDatabase, CDatabase::Close, CDBException, CRecordset::Open(&N)

Index