如何枚举 OLE DB 数据源 (OLE DB)

若要列出对 SQLOLEDB 枚举器可见的数据源,使用者应调用 ISourcesRowset::GetSourcesRowset 方法。此方法返回与当前可见数据源有关的信息的行集。

根据所使用的网络库,将搜索相应的域以找到数据源。对于命名管道,将搜索客户端登录到的域。对于 AppleTalk,将搜索默认区域。对于 SPX/IPX,将搜索在平构数据库中找到的 SQL Server 安装的列表。对于 Banyan VINES,将搜索在本地网络中找到的 SQL Server 安装。不支持多协议和 TCP/IP 套接字。

在开关服务器时,可能需要几分钟来更新这些域中的信息。

完整的示例代码位于文件 ListDataSourcesWithEnumerator.cpp 中。可以从 MSDN 上的 SQL Server Downloads(SQL Server 下载)页下载包含此示例的存档。

该示例是使用 Microsoft Visual C++ 2005 开发的。

安全说明安全说明

请尽可能使用 Windows 身份验证。如果 Windows 身份验证不可用,请在运行时提示用户输入其凭据。不要将凭据存储在一个文件中。如果必须保存凭据,应当用 Win32 crypto API(Win32 加密 API)加密它们。

枚举 OLE DB 数据源

  1. 通过调用 ISourceRowset::GetSourcesRowset 检索数据源的行集。

  2. 通过调用 GetColumnInfo::IColumnInfo 查找枚举器行集的说明。

  3. 根据列信息创建绑定结构。

  4. 通过调用 IAccessor::CreateAccessor 创建行集取值函数。

  5. 通过调用 IRowset::GetNextRows 提取行。

  6. 通过调用 IRowset::GetData 从行集中该行的副本检索数据,然后处理这些数据。