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 Dim instancias() As 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.
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á:

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.
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.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.