Compartilhar via


Como enumerar fontes de dados OLE DB (OLE DB)

Para listar as fontes de dados visíveis para o enumerador SQLOLEDB, o consumidor chama o método ISourcesRowset::GetSourcesRowset. Esse método retorna um conjunto de linhas de informações sobre as fontes de dados visíveis no momento.

Dependendo da biblioteca de rede usada, o domínio apropriado é pesquisado em busca das fontes de dados. Para pipes nomeados, é o domínio no qual o cliente fez logon. Para AppleTalk, é a zona padrão. Para SPX/IPX, é a lista de instalações do SQL Server encontradas no bindery. Para Banyan VINES, são as instalações do SQL Server encontradas na rede local. Soquetes TCP/IP e de protocolos múltiplos não são suportados.

Quando o servidor é desativado ou ativado, pode levar alguns minutos para atualizar as informações nesses domínios.

Um código de exemplo completo está no arquivo ListDataSourcesWithEnumerator.cpp. Você pode baixar um arquivo que contém o exemplo da página de Downloads do SQL Server no MSDN.

Esse exemplo foi desenvolvido com o Microsoft Visual C++ 2005.

Observação sobre segurançaObservação sobre segurança

Quando possível, use a Autenticação do Windows. Se a Autenticação do Windows não estiver disponível, solicite aos usuários que digitem suas credenciais em tempo de execução. Evite armazenar as credenciais em um arquivo. Se for necessário manter as credenciais, criptografe-as com a API de criptografia Win32.

Para enumerar fontes de dados OLE DB

  1. Recupere o conjunto de linhas de origem chamando ISourceRowset::GetSourcesRowset.

  2. Encontre a descrição do conjunto de linhas de enumeradores chamando GetColumnInfo::IColumnInfo.

  3. Crie as estruturas de associação a partir das informações de coluna.

  4. Crie o acessador de conjunto de linhas chamando IAccessor::CreateAccessor.

  5. Busque as linhas chamando IRowset::GetNextRows.

  6. Recupere os dados da cópia da linha do conjunto de linhas chamando IRowset::GetData e processe-os.