VB6
- Acessando o SQL Server 2005 Express Edition
![]() |
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
![]() |
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:
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)

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.

Abaixo temos o leiaute usado no formulário:

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:
![]() |
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:
![]() |
Pegue o projeto completo aqui:
VB_SQL2005.zip
Eu sei é apenas o velho e bom Visual Basic mas eu
gosto... ![]()
Referências :
José Carlos Macoratti