Listando os SQL Servers da Rede (.NET 1.x)

 

Para listar os SQL Servers da rede você precisara utilizar um componente chamado SQLDMO, que vem com o Client Tools do SQL Server.

1 - Referencie a library do SQLDMO indo nas References do seu projeto, aba de objectos COM e selecionando "Microsoft SQLDMO Object Library 8.x"

2 - No seu código, declare uma aplicação SQLDMO

    C#

       SQLDMO.ApplicationClass myApplicationClass = new SQLDMO.ApplicationClass();

 

3 - Em seguida, crie um object NameList. Este objeto sera uma colecao de strings:

    C#

       SQLDMO.NameList myNameList = myApplicationClass.ListAvailableSQLServers();

 

4 - Agora voce pode usar a Colecao de strings retornado. Por exemplo, colocando os SQLservers em um listbox lbxSqlServers

    C#

       lbxSqlServers.Items.Clear();

       foreach(string SQLServer in myNameList)

         lbxSqlServers.Items.Add(SQLServer);

 

Boas Práticas: Se voce esta escrevendo codigo para uma aplicacao Windows Forms, recomendo a utilizacao de uma Thread para listar os SQL Servers, pois este e um processo que leva um certo tempo.

 

Aviso: O SQLDMO possui um timeout para a listagem de SQL Servers, ou seja, pode ser que ocorra dele nao retornar todos os SQL Servers da sua rede. Isso e uma falha documentada pela MS. Ainda assim ele pode te ajudar no basico.

 

Daniel Portal (iterationx@bol.com.br)