CDatabase::Open
调用该成员函数初始化新构造的 CDatabase 对象。
virtual BOOL Open(
LPCTSTR lpszDSN,
BOOL bExclusive = FALSE,
BOOL bReadOnly = FALSE,
LPCTSTR lpszConnect = _T("ODBC;"),
BOOL bUseCursorLib = TRUE
);
参数
lpszDSN
指定数据源名称—名称注册到ODBC用ODBC管理器程序。如果DSN值。lpszConnect 指定(在窗体“DSN=<data-source>"),在 lpszDSN不能再次指定。在这种情况下,lpszDSN 应为 NULL。否则,可以通过 NULL,如果要处理程序向用户可以选择数据源的数据源用户在对话框中。有关更多信息,请参见备注。bExclusive
不支持在选件类库的此版本。目前,因此,如果此参数是 TRUE,则断言失败。数据源始终中打开如共享(非独占)。bReadOnly
TRUE,如果要连接只读和禁止更新到数据源。所有依赖的记录集继承该属性。默认值为 FALSE。lpszConnect
指定连接字符串。连接字符串连接信息,包括数据源名称、用户标识符有效在数据源,用户身份验证字符串(密码,因此,如果数据源为)和其他信息。必须由字符串前缀所有的连接字符串“ODBC; ” (大写或小写)。“ODBC; ”字符串用于指示连接是访问ODBC数据源;这是向上兼容,在选件类库的未来版本可能支持非ODBC数据源。bUseCursorLib
TRUE,如果您希望ODBC游标库DLL加载。(如果该驱动程序支持它们),游标库蒙板,有效阻止使用动态集的基础ODBC驱动程序的某些功能。支持的唯一光标,则将加载游标库。是静态快照以及仅向前游标。默认值为 TRUE。如果计划创建记录集对象直接从 CRecordset,而无需从派生,则不应加载游标库。
返回值
非零,如果连接成功生成;否则0,如果用户取消,当显示对话框请求更多连接信息。其他情况下,框架引发异常。
备注
您的数据库对象,然后才能使用该构造记录集对象之前,必须初始化。
说明 |
---|
调用 OpenEx 成员函数是首选方式连接到数据源并初始化您的数据库对象。 |
如果您的 Open 的参数调用不包含足够的信息建立连接,ODBC驱动程序打开对话框从用户的必需信息。当您调用 Open时,您的连接字符串,lpszConnect,在 CDatabase 对象的私有存储并通过调用 GetConnect 成员函数可用。
如果希望,可以打开您的对话框,在调用 Open 从用户获得的信息,例如密码,则添加之前,对传递到 Open的连接字符串的信息。或者希望保存所传递的连接字符串,以便您可以重用它,则下次应用程序调用 CDatabase 对象的 Open。
可以为登录权限还使用连接字符串(每个类型的多个级别不同的 CDatabase 对象)或表示其他数据源特定信息。有关连接字符串的更多信息,请参见 Windows SDK的第5章。
则,例如,DBMS宿主不可用,可能会以连接尝试可以超时。如果连接尝试失败,Open 引发 CDBException。
示例
// m_dbCust is a CDatabase object embedded in a CDocument class
if (bDefault)
{
// Connect the object to a data source (no password)
// the ODBC connection dialog box will always remain hidden
m_dbCust.Open(_T("MFC_ODBCTest"), FALSE, FALSE, _T("ODBC;UID=JOES"));
}
else
{
// ...Or, query the user for all connection information
m_dbCust.Open(NULL);
}
要求
Header: afxdb.h