Clube Da Programação - Fórum: Acessando Sql Server 2005 Express - Clube Da Programação - Fórum

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

Acessando Sql Server 2005 Express

#1 Membro offline   Trojann 

  • VB.NET PROGRAMMER !
  • Grupo: Moderador Visual Basic .NET
  • Posts: 21
  • Cadastrado: 30-maio 10
  • Reputação: 0
  • Sexo/Gender: Masculino
  • Cidade/CityC:\Program Files\Visual Studio 9
  • Linguagem/Language: Visual Basic
Reputation: 0
Sem Avaliação

Postou 01 junho 2010 - 01:56

Já publiquei vários artigos mostrando como acessar via Visual Basic as principais bases de dados usadas atualmente : Access, SQL Server, FireBird, MySQL e PostGree.

Vou incluir nesta lista o SQL Server 2005 Express Edition pois neste artigo eu mostro como você pode efetuar a conexão com uma base de dados SQL Server 2005 Express local e com um banco de dados .mdf em um diretório qualquer usando o novo provedor SQLNCLI.

A primeira coisa que você tem que atentar é que quando você instala o SQL Server 2005 (seja a versão Express ou a completa) é incluído um novo provedor de bases de dados OLE DB chamado SQLNCLI.

Este provedor deve ser usado na string de conexão que é utilizada para efetuar a conexão com o SQL Server 2005. Ele ocupou o lugar do provedor SQLOLEDB que é usado para acessar uma base de dados SQL Server 2000.

Para acompanhar este artigo você vai precisar ter instalado os seguintes itens:

Acessando o SQL Server 2005 Express Local

Vou acessar a tabela Clientes do banco de dados Cadastro que eu criei no SQL Server 2005 Express usando o Management Studio. Se você não sabe como criar um banco de dados usando esta ferramenta leia o artigo: VB.NET 2005 - Criando Objetos Básicos de dados.

Abaixo eu mostro o meu SQL Server 2005 Express aberto no Management Studio exibindo o banco de dados Cadastro e a tabela Clientes com alguns registros que eu criei diretamente na ferramenta.

Nota: Se você não conhece o Management Studio leia o artigo: .NET 2005 - Usando o SQL Server Management Studio

Imagem Agora eu vou criar um projeto do tipo STANDARD EXE no Visual Basic 6.0 com o nome de VB_SQL2006.vbp, e, no formulário padrão eu vou usar os seguintes controles:

  • MSHFlexGrid - Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB)
  • TextBox
  • CommandButton
Para incluir uma referência ao componente MSHFlexGrid , clique no menu Project -> Components e a seguir na aba Controls marque o componente: Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB)

Imagem

Não esqueça também de incluir uma referência a biblioteca ADO - Microsoft ActiveX Data Objects 2.8 Library - para ter acesso aos objetos de acesso a dados ADO.

Imagem

Abaixo temos o leiaute usado no formulário:

Imagem

Vamos agora digitar o código no evento Click do botão - Exibir Dados - Clientes - para acessar a tabela Clientes e mostrar os dados no grid.

Private Sub Command1_Click() ' A conexão com o banco de dados
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

' A cadeia de conexão
Dim SQL As String

' Selecionando os dados da tabela Clientes
SQL = "SELECT * FROM Clientes"
cn.Open "Provider=SQLNCLI; " & _
"Initial Catalog=Cadastro; " & _
"Data Source=(local)\SQLEXPRESS; " & _
"integrated security=SSPI; persist security info=True;"


' O recordset para acessar s dados
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
' Abrindo o recordset de forma estática pois não vou tratar os dados
rs.Open SQL, cn, adOpenStatic
' Atribuir o recordset ao FlexGrid
Set MSHFlexGrid1.DataSource = rs
'fecha o recordset e a conexao
rs.Close
cn.Close
End Sub Executando o projeto , teclando F5, e clicando no botão iremos obter:

Imagem Para exibir os registros da linha selecionada no Grid nas caixas de texto eu criei a seguinte rotina ligada ao evento Click do MSHFlexGrid:

Private Sub MSHFlexGrid1_Click()
With MSHFlexGrid1
Text1.Text = .TextMatrix(.Row, 1)
Text2.Text = .TextMatrix(.Row, 2)
Text3.Text = .TextMatrix(.Row, 3)
Text4.Text = .TextMatrix(.Row, 4)
End With
End Sub
Acessando um arquivo SQL Server 2005 Express em um diretório

Para poder acessar um banco de dados SQL Server que esta em uma pasta qualquer teremos que indicar a rota (caminho) do arquivo com a extensão .mdf. A string de conexão deverá ser alterada para indicar o caminho , a instância e o provedor SQLNCLI. Veja abaixo:

Provider=SQLNCLI;
AttachDBFileName= caminho completo do banco de dados .mdf;
Data Source=
(local)\SQLEXPRESS;
integrated security=SSPI; persist security info=True;
Vamos então acessar o banco de dados Northwind.mdf que esta na pasta c:\dados em minha máquina local (Veja na sua máquina o local correto), e, vamos exibir os dados da tabela Employees.

O código que deverá ser colocado no evento Click do botão - Exibir dados Employees - é o seguinte:

Private Sub Command2_Click()

' A conexão com o banco de dados
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

' variavel SQL
Dim SQL As String
' Para usar um arquivo diretamente
Dim BD As String
' Caminho do banco de dados
BD = "C:\dados\Northwnd.mdf"
' comando SQL para selecionar os dados da tabela Employees
SQL = "SELECT * FROM Employees"

cn.Open "Provider=SQLNCLI; " & _
"AttachDBFileName=" & BD & "; " & _
"Data Source=(local)\SQLEXPRESS; " & _
"integrated security=SSPI; persist security info=True;"

'recordset para acessar os dados
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
' Abrir o recordset de forma estática
rs.Open SQL, cn, adOpenStatic

'atribuir o recordset ao grid
Set Me.MSHFlexGrid1.DataSource = rs
rs.Close
cn.Close
End Sub Executando o projeto e clicando no botão - Exibir dados Employees - iremos obter:

Imagem
Créditos: Macoratti



0

Compartilhar este tópico:


Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)