CDataSource::Open
打开到数据源的连接使用 CLSID、 ProgID或 CEnumerator 标记或提示具有定位器用户在对话框中。
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