CDatabase::OpenEx
调用该成员函数初始化新构造的 CDatabase 对象。
virtual BOOL OpenEx(
LPCTSTR lpszConnectString,
DWORD dwOptions = 0
);
参数
lpszConnectString
指定ODBC连接字符串。这包括数据源名称以及其他选项信息,如用户ID和密码。例如,“DSN=SQLServer_Source; UID=SA; PWD=abc123”是一个可能的连接字符串。请注意,如果通过 lpszConnectString的 NULL,数据源"对话框将提示用户选择数据源。dwOptions
指定以下值的组合的位掩码。默认值为0,这意味着数据库中打开与编写共享,ODBC游标库DLL不会加载,并且,ODBC连接对话框将显示,只有在未生成访问的足够的信息。在选件类库的此版本不支持的CDatabase::openExclusive。数据源始终中打开如共享(非独占)。目前,因此,如果指定此选项,则断言失败。
CDatabase::openReadOnly 打开数据源为只读。
CDatabase::useCursorLib 加载ODBC游标库DLL。(如果该驱动程序支持它们),游标库蒙板,有效阻止使用动态集的基础ODBC驱动程序的某些功能。支持的唯一光标,则将加载游标库。是静态快照以及仅向前游标。如果计划创建记录集对象直接从 CRecordset,而无需从派生,则不应加载游标库。
CDatabase::noOdbcDialog 不显示ODBC连接对话框,无论提供足够的连接信息。
始终CDatabase::forceOdbcDialog 显示ODBC连接对话框。
返回值
非零,如果连接成功生成;否则0,如果用户取消,当显示对话框请求更多连接信息。其他情况下,框架引发异常。
备注
您的数据库对象,然后才能使用该构造记录集对象之前,必须初始化。
如果您的 OpenEx 的 lpszConnectString 参数调用不包含足够的信息建立连接,ODBC驱动程序打开对话框从用户的必需信息,假定您尚未设置 CDatabase::noOdbcDialog 或 CDatabase::forceOdbcDialog 在 dwOptions 参数。当您调用 OpenEx时,您的连接字符串,lpszConnectString,在 CDatabase 对象的私有存储并通过调用 GetConnect 成员函数可用。
如果希望,可以打开您的对话框,在调用 OpenEx 从用户获得的信息,例如密码,然后添加之前,对传递到 OpenEx的连接字符串的信息。或者希望保存所传递的连接字符串,以便您可以重用它,则下次应用程序调用 CDatabase 对象的 OpenEx。
可以为登录权限还使用连接字符串(每个类型的多个级别不同的 CDatabase 对象)或表示其他数据源特定信息。有关连接字符串的更多信息,请参见 ODBC 程序员参考 中的第6章。
则,例如,DBMS宿主不可用,可能会以连接尝试可以超时。如果连接尝试失败,OpenEx 引发 CDBException。
示例
// m_dbCust is a CDatabase object embedded in a CDocument class.
// Connect the object to a read-only data source where
// the ODBC connection dialog box will always remain hidden
m_dbCust.OpenEx(_T("DSN=MFC_ODBCTest;UID=JOES"),
CDatabase::openReadOnly | CDatabase::noOdbcDialog);
要求
Header: afxdb.h