CDatabase::OpenEx

เสมือน BOOL OpenEx (LPCTSTR lpszConnectString, DWORD dwOptions = 0 );
โยน (CDBException, CMemoryException);

ส่งกลับค่า

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

พารามิเตอร์

lpszConnectString

ระบุสายอักขระการเชื่อมต่อ ODBC ซึ่งรวมถึงชื่อของแหล่งข้อมูลรวมทั้งข้อมูลอื่น ๆ ก็ได้ เช่น ID ผู้ใช้และรหัสผ่านด้วย ตัวอย่างเช่น, " DSN = SQLServer_SourceUID = SAPWD = abc123 "เป็นสายอักขระการเชื่อมต่อเป็นไป หมายเหตุว่า ถ้าคุณส่งผ่านค่า NULLสำหรับlpszConnectStringแหล่งข้อมูลกล่องโต้ตอบจะพร้อมท์ผู้ใช้ให้เลือกแหล่งข้อมูล?

dwOptions

Bitmask ซึ่งระบุการรวมกันของค่าต่อไปนี้ ค่าเริ่มต้นคือ 0 ซึ่งหมายความ ว่า ฐานข้อมูลจะเปิดขึ้นเป็นร่วมกับการเข้าถึงแบบเขียน ตัว ODBC เคอร์เซอร์ไลบรารีจะไม่สามารถโหลด DLL และกล่องโต้ตอบการเชื่อมต่อ ODBC จะแสดงเฉพาะเมื่อไม่มีข้อมูลเพียงพอในการเชื่อมต่อ?

หมายเหตุ

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

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

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

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

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

ตัวอย่าง

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

/ / วัตถุเพื่อการเชื่อมต่อแบบ / / ตำแหน่งแหล่งข้อมูลที่เป็นแบบอ่านอย่างเดียว
/ / กล่องโต้ตอบของการเชื่อมต่อ ODBC
/ / เสมอจะยังคงถูกซ่อนอยู่
m_dbCust.OpenEx (_T (" DSN = MYDATASOURCEUID = JOES "),
 nbsp               CDatabase::openReadOnly |
                 CDatabase::noOdbcDialog)(&N)

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

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

Index