Login:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

VB.NET

Feed da seção VB.NET

Newsletter de VB.NET


Segunda-feira, 14/08/2006 - 11:21 - Por José Carlos Macoratti
Seções relacionadas:

VB.Net - Obtendo as instâncias do SQL Server instaladas

Vamos falar um pouco do SQL Server. Quando digo SQL Server, estou me referindo ao Sistema Gerenciador de Banco de dados (SGBD). O SQL Server gerencia dois tipos de base de dados:

OLTP  - On line transaction processing
OLAP  - On-line analitical processing. 

Durante a instalação do SQL Server, são gerados quatro bancos de dados do sistema:

01. Master = Controla todas as tabelas do sistema de banco de dados.

02. Model = É usado como uma máscara quando os banco de dados definidos pelo usuário são criados. Funciona como um protótipo para criação de outras base de dados.

03. Msdb = Utilizando para o armazenamento de alertas e jobs.

04. TempDB = Fornece o espaço de armazenamento para tabelas temporárias e outros objetos temporários.

O SQL Server oferece os seguintes serviços:

. MSSQLServer Service = Gerenciamento de dados, transação e processamento de query, bem como integridade dos dados.

. SQLServerAgent = jobs, alertas, operadores.

. Microsoft Distributed Transaction Cordinator (MS DTC) = Gerenciamento de transações distribuídas entre servidores.

. Microsoft Search = Procura por catálogos e por índices.

O SQL Server pode possuir múltiplas instâncias identificadas por: nome do computador/nome da instância. Não há um limite para as instâncias, e todas elas são independentes, como se fossem servidores diferentes.

Seria interessante saber quais instâncias temos instaladas em nossa máquina. Este artigo mostra como você pode fazer isto usando código VB.NET. Vou mostrar duas maneiras de resolver o problema: uma usando o VS 2003 e outra usando o VS2005, o que não quer dizer que não existam outras.

Obtendo as instâncias instaladas do SQL Server

Usando o objeto SQLDMO - (VS 2003)

Para usar este código, você deve fazer uma referência ao biblioteca SQLDMO no seu projeto.

Crie um novo projeto no VS 2003 e salve com o nome de sqlInstancias. A seguir, clique com o botão direito do mouse sobre o nome do projeto na janela Solution Explorer e selecione a opção Add Refernece. Na janela Add Reference marque a aba COM e selecione a library - Microsoft SQLDMO object Library, conforme abaixo:

No formulário padrão, form1.vb, inclua um botão de comando e um controle ComboBox. A seguir inclua o seguinte código no evento Click do botão de comando:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

' Lista todos os servidores disponíveis na rede

Dim i As Integer

Dim oNames As SQLDMO.NameList

Dim oSQLApp As SQLDMO.Application

oSQLApp = New SQLDMO.Application

oNames = oSQLApp.ListAvailableSQLServers()

For i = 1 To oNames.Count

  ' Inclui os nomes do servidores instalados em um combobox

   cboListServers.Items.Add(oNames.Item(i).ToString)

Next i

End Sub


Nota
:
Este código irá funcionar também no VB6 com as adaptações pertinentes. Para que o resultado seja o desejado, você deverá ter instalados no mínimo o service pack - sp1- para o SQL Server 2000.

Acessando o registro do Windows  (VB 2005)

Crie um novo projeto no VB 2005 Express Edition e no formulário padrão inclua um botão de comando e um controle Combobox.A seguir inclua o seguinte código no evento Click do botão de comando:

Dim instancias() As String

'obtem as instâncias do SQL Server que estão instaladas

instancias = instanciasInstaladas()

For Each s As String In instancias

  If s = "MSSQLSERVER" Then

     cboInstanciasSQL.Items.Add("(MACORATI)")

  Else

     cboInstanciasSQL.Items.Add("(local)\" & s)

  End If

Next  

cboInstanciasSQL.Text = "(local)"


Obs.:
MACORATI é o nome da minha máquina local.

Neste código, a função instanciasInstaladas retorna as instâncias do SQL Server que estão instaladas na sua máquina local. O código da função é o seguinte:

Private Function instanciasInstaladas() As String()

  Dim registro As Microsoft.Win32.RegistryKey
  registro = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Microsoft SQL Server", False)

  Dim instancias() As String
  instancias = CType(registro.GetValue("InstalledInstances"), String())

  Return instancias

End Function


A função usa  o objeto My.Computer.Registry que oferece métodos e propriedades para trabalhar com chaves do registro.

My.Computer.Registry.LocalMachine retorna uma tipo de chave de registro que fornece ao acesso a HKEY_LOCAL_MACHINE.

HKEY_LOCAL_MACHINE é usado para armazenar configurações que não variam de usuário para usuário sendo que todos os usuários do sistema Windows compartilham esta chave. Nela existem cinco sub-chaves:

01. Hardware
02. SAM
03. Security
04. Software
05. System

O método GetValue é usado para retornar um valor da chave do registro. Na minha máquina local existem instaladas o SQL Server Express e o SQL Server 2000. O retorno das instâncias será: "SQLEXPRESS"  e   "MSSQLSERVER"

O resultado obtido será:

Todos os artigos de José Carlos Macoratti

0 comentários publicados

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

José Carlos Macoratti é referência em Visual Basic no Brasil e autor dos livros "Aprenda Rápido: ASP" e "ASP, ADO e Banco de Dados na Internet". Mantenedor do site macoratti.net.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.