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
    [in] 对数组的指针包含属性和值的结构将 DBPROPSET。 见属性集和属性组OLE DB程序员参考在Windows SDK。

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

  • pName
    要连接的数据库服务器的名称。

  • pUserName
    属性用户的名称。

  • 密码
    用户的密码。

  • nInitMode
    [in] 数据库初始化方式。 为虚拟化的情况下初始化列表查看 OLE DB 程序员参考》) 中的初始化属性Windows SDK 中。 如果 nInitMode 为零,初始化方式。用于的属性集未包括打开连接。

  • szProgID
    [in] 程序标识符。

  • enumerator
    [in] 使用的 CEnumerator 获取对象打开的连接到,名字对象在调用方未指定 CLSID

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

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

返回值

标准版HRESULT

备注

使用在 hWnd参数的服务组件此方法以打开数据源对象;此 DLL 包含服务组件功能的实现 (如合并资源,自动事务登记,依此类推。 有关更多信息,请参见“OLE DB 服务”OLE DB Programmer's Reference 在 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);

要求

标头: atldbcli.h

请参见

参考

CDataSource 类