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
[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