CDataSource::Open

打开到数据源的连接使用 CLSIDProgIDCEnumerator 标记或提示具有定位器用户在对话框中。

HRESULT Open(
   const CLSID& clsid,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1 
) throw( );
HRESULT Open(
   const CLSID& clsid,
   LPCTSTR pName,
   LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0 
) throw( );
HRESULT Open(
   LPCTSTR szProgID,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1 
) throw( );
HRESULT Open(
   LPCTSTR szProgID,
   LPCTSTR pName,
   LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0 
) throw( );
HRESULT Open(
   const CEnumerator& enumerator,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1 
) throw( );
HRESULT Open(
   const CEnumerator& enumerator,
   LPCTSTR pName,
   LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0 
) throw( );
HRESULT Open(
   HWND hWnd = GetActiveWindow( ),
   DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_WIZARDSHEET 
) throw( );
HRESULT Open( 
   LPCWSTR szProgID, 
   DBPROPSET* pPropSet = NULL, 
   ULONG nPropertySets = 1 
) throw( );
HRESULT Open( 
   LPCSTR szProgID, 
   LPCTSTR pName, 
   LPCTSTR pUserName = NULL, 
   LPCTSTR pPassword = NULL, 
   long nInitMode = 0 
) throw( );

参数

  • clsid
    [in] 数据提供程序的 CLSID

  • pPropSet
    [out] 一个指向数组的指针包含特性和值的 DBPROPSET 框架将设置为。 请参见《OLE DB 程序员参考》中的 特性设置和属性组,在 Windows SDK。

  • nPropertySets
    [] DBPROPSET 结构数。 pPropSet 传递的。

  • pName
    [] 的连接的数据库的名称。

  • pUserName
    [in] 用户的名称。

  • pPassword
    [in] 用户的密码。

  • nInitMode
    [in] 数据库初始化方式。 有关有效的初始化方法列出参见 OLE DB 程序员参考 中的 初始化属性,在Windows SDK 。 如果 nInitMode 为零,初始化方式在设置用于的属性不包括打开连接。

  • szProgID
    [in] 一个程序标识符。

  • enumerator
    [in] 用于的 CEnumerator 对象获取打开的连接个标记,在调用方不指定 CLSID

  • hWnd
    [in] 句柄是该对话框的父的窗口。 使用的函数重载 hWnd 参数将自动调用服务组件;请参见 " 备注 " 了解详细信息。

  • dwPromptOptions
    [in] 确定定位器对话框样式显示。 为可能的值参见 Msdasc.h。

返回值

标准 HRESULT

备注

使用 hWnd 参数的方法重载打开与服务组件的一个数据源对象在 oledb32.dll;此 DLL 包含服务组件功能的实现例如合并资源,自动事务登记,依此类推。 有关更多信息,请参见 “OLE DB services” (《OLE DB 程序员参考中的中。 https://msdn.microsoft.com/library/default.asp?url=/library/en-us/oledb/htm/oledbole_db_services.asp?frame=true

不使用 hWnd 参数的方法重载打开数据源对象,而无需使用服务组件在 oledb32.dll。 CDataSource 对象打开与这些函数重载无法使用任何一个服务组件的功能。

示例

下面的代码演示如何打开和 OLE DB 模板中的 Jet 4.0 数据源。 您将 Jet 数据源作为 OLE DB 数据源。 但是,您调用 打开 需要属性设置的两种:一 DBPROPSET_DBINIT 的和其他 DBPROPSET_JETOLEDB_DBINIT的,因此,您可以设置 DBPROP_JETOLEDB_DATABASEPASSWORD

CDBPropSet rgDBPropSet[2];  // Declare two property sets;
                            // set properties elsewhere as appropriate.

hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);

要求

Header: atldbcli.h

请参见

参考

CDataSource 类