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 Class
层次结构图
CDatabase::OpenEx
CDatabase::CDatabase
CDatabase::Close
CDBException Class
CRecordset::Open