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

请参见

参考

CDatabase选件类

层次结构图

CDatabase::OpenEx

CDatabase::CDatabase

CDatabase::Close

CDBException选件类

CRecordset::Open