如何枚举 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 数据源
通过调用 ISourceRowset::GetSourcesRowset 检索数据源的行集。
通过调用 GetColumnInfo::IColumnInfo 查找枚举器行集的说明。
根据列信息创建绑定结构。
通过调用 IAccessor::CreateAccessor 创建行集取值函数。
通过调用 IRowset::GetNextRows 提取行。
通过调用 IRowset::GetData 从行集中该行的副本检索数据,然后处理这些数据。