Mudanças do ADO para o ADO.NET

O objetivo deste tutorial é explicar de forma simples as mudanças na biblioteca de acesso a dados da Microsoft, o ADO (ActiveX Data Objects), que resultaram na nova biblioteca: o ADO.NET ...

04/06/03h

Diminuir o tamanho das letras Aumentar o tamanho das letras

O objetivo deste tutorial é explicar de forma simples as mudanças na biblioteca de acesso a dados da Microsoft, o ADO (ActiveX Data Objects), que resultaram na nova biblioteca: o ADO.NET.

Para acompanhar este tutorial é necessário que você tenha bons conhecimentos de ADO, Visual Basic e VB.NET (os exemplos estarão escritos nessas linguagens).

Microsoft .NET

Veja o modelo de objetos do ADO:


Modelo de objetos do ADO

Vejamos uma pequena descrição das funções de cada objeto:

 Connection: é o objeto que mantém a conexão com o banco de dados, a qual é utilizada pelos outros objetos do ADO para comunicação com o banco de dados. Na Errors Collection ficam armazenados os erros de conexão.

 Command: através desse objeto é possível enviar ao banco de dados comandos que retornem dados geralmente para um Recordset. É muito utilizado na chamada de Stored Procedures. Na Parameters Collection ficam os parâmetros enviados para o banco de dados.

 Recordset: armazena os dados retornados por um Command ou Query SQL. Através do recordset é possível alterar, excluir e inserir dados no banco e fazer a navegação nos registros de uma tabela. Os dados retornados são armazenados na Fields Collection.

O ADO foi uma grande evolução nas técnicas de acesso a dados pois permitia tanto acessos locais quanto remotos, uso em aplicações cliente-servidor e Web, apesar de ter limitações no que tange ao acesso a dados desconectados (quando podemos manipular os dados sem mantermos uma conexão com o servidor e somente se conectar outra vez para atualizar os dados).

Como já foi dito essa biblioteca possui algumas limitações e problemas: foi para resolver esses problemas e acabar com as limitações que foi criado o ADO.NET, padrão do .NET Framework.

Veja o modelo de objetos do ADO.NET:


Modelo de objetos do ADO.NET

O ADO.NET é dividido em dois grandes grupos:

 Managed Providers: objetos que não armazenam dados, usados para ler e escrever em bancos de dados (IDBConnection, IDBCommand, IDBDataReader), além das classes de acesso a dados especiais para: SQL Server, Oracle, ODBC e OLE DB;

 DataClasses: são os objetos que podem armazenar e manipular dados, mas não sabem sua origem, nem o que significam (DataSets, DataTables, DataRelations etc). A nomenclatura de cada objeto utilizado no desenvolvimento depende do DataProvider escolhido, por exemplo:

- O objeto Connection é chamado de OdbcConnection quando se usa o provider para ODBC, e de SqlConnection quando se usa o provider para SQL Server.

- O objeto DataAdapter é chamado de OracleDataAdapter quando se usa o provider para Oracle, e de OledbDataAdapter quando se usa o provider para OLE DB.

Vejamos uma breve descrição das funções de cada objeto :

 Connection: é o objeto que mantém a conexão com o banco de dados, a qual é utilizada pelos outros objetos do ADO.NET para comunicação com o banco de dados.

 Command: através desse objeto é possível enviar ao banco de dados comandos que retornem dados. No ADO.NET esse objeto ganhou uma importância maior pois quando criamos um DataAdapter (descrição mais abaixo), armazenamos dentro do mesmo quatro objetos Command: um para inclusão, um para exclusão, um para alteração e um para seleção. É muito utilizado na chamada de Stored Procedures e ele também tem uma coleção que armazena os parâmetros usados nas chamadas a elas.

 DataReader: tem a mesma função de um Recordset ADO com cursor* ReadOnly Forward Only, ou seja, lê os dados do primeiro para o último registro, e não pode fazer alterações nos dados.

 DataAdapter: contém comandos SQL para seleção (SelectCommand), inclusão (InsertCommand), atualização (UpdateCommand) e exclusão (DeleteCommand) de uma determinada tabela. Esses comandos podem ser inseridos pelo desenvolvedor ou gerados pelo Visual Studio.NET. Ainda há a opção de usar Stored Procedures já existentes ou ainda que o Visual Studio.NET as crie.

 DataSet: um objeto muito poderoso, sendo que a sua nomenclatura é independente do Provider escolhido pois este objeto não é específico para um banco de dados: ele próprio é um banco de dados relacional armazenado em memória, que contém tabelas (DataTables), campos (DataColumns), registros (DataRows), constraints (ConstraintCollection) e relações entre tabelas (DataRelations)

* não existem cursores no ADO.NET

O ADO.NET não é apenas uma nova versão do ADO: trata-se de uma grande inovação e uma mudança na visão do acesso a dados que inclui boas novidades para os desenvolvedores tais como:

- Melhor suporte para o acesso a dados desconectados, usado em situações onde o desempenho é muito importante

- Integração com todas as linguagens que utilizem o .NET Framework (linguagens da Microsoft ou não)

- Comunicação com outras camadas através de XML, o que facilita muito a comunicação em ambientes heterogêneos

- Typed Datasets: são DataSets que utilizam schemas XML para disponibilizar todas as informações sobre as tabelas para o desenvolvedor quando este está digitando código. Um exemplo de sua utilização é que não é mais preciso saber os nomes dos campos de uma tabela, ao digitar o nome do dataset o IDE do Visual Studio.NET apresentará os nomes dos campos e se for atribuído um valor de tipo diferente ao do campo, o IDE exibirá a mensagem de erro em tempo de compilação, evitando os runtime errors comuns em aplicações que acessam dados.

- Possui DataProviders (espécie de drivers específicos para cada tipo de banco de dados) otimizados para: MS SQL Server, Oracle, ODBC e OLE DB, o que aumenta muito o desempenho da aplicação.

Apesar de ser possível utilizar o ADO ou outras tecnologias baseadas em dlls e COM no .NET Framework, o ADO.NET em breve deve se tornar o padrão para os desenvolvedores que se utilizarem dessa nova biblioteca, pois traz muitas vantagens sobre as bibliotecas de acesso a dados existentes atualmente.

Vejamos um exemplo prático para selecionar todos os dados da tabela Customers no banco de dados de exemplo Northwind do SQL Server:

No Visual Basic 6:
Dim Conexao as ADODB.Connection
Dim rsExemplo as ADODB.Recordset

Set Conexao = New ADODB.Connection
Set rsExemplo = New ADODB.Recordset

Conexao.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=(local)"
Conexao.Open

rsExemplo.Open "SELECT * FROM Customers", Conexao, adOpenKeyset, adLockReadOnly

No Visual Basic.NET
Adicione a seguinte linha antes de qualquer código, no topo do editor de código:

Imports System.Data.SqlClient

O código abaixo deve ser inserido num evento de inicialização, como o Form_Load por exemplo:

Dim Conexao As New SqlConnection 'podemos colocar o New na declaração do objeto, criando a nova instância
Dim Adapter As New SqlDataAdapter
Dim Sel As New SqlCommand
Dim DS As New DataSet

Conexao.ConnectionString = "workstation id=SERVER; packet size=4096; integrated security=SSPI;" & _
" data source=(local);persist security info=False;initial catalog=Northwind"
Conexao.Open()
Sel.Connection = Conexao
Sel.CommandType = CommandType.Text
Sel.CommandText = "SELECT * FROM Customers"
Adapter.SelectCommand = Sel 'o DataAdapter é um container para os objetos command, aqui usarei apenas o Select
Adapter.Fill(DS, "Customers")
Conexao.Close()

Como podemos ver houveram algumas mudanças no código, mas examinando bem vemos que a idéia básica é a mesma. A partir de agora os objetos Command são obrigatórios mesmo que você deixe que o Visual Studio.NET os crie sem que você se preocupe com isso (para isso basta utilizar o wizard para criação do DataAdapter).

Conclusão
Pudemos conhecer as novidades do ADO.NET, a nova biblioteca de acesso a dados da Microsoft, que é o padrão utilizado pelo .NET Framework. O ADO.NET traz uma grande evolução e muito mais facilidades para os desenvolvedores que utilizavam o ADO :) ...

Marcas Registradas
Visual Basic, Visual Basic.NET, Visual Studio.NET, SQL Server são marcas registradas da Microsoft Corporation.
Todos os demais nomes registrados, marcas registradas ou direitos de uso citados neste TM pertencem a seus respectivos proprietários.


 

Autor original:  ClawHammer
Direitos Autorais:  BABOO




imprima este artigo
envie este artigo via e-mail

 

Artigos relacionados


Mais Notícias desta Área

Últimas Notícias
 
 Software  |  Hardware  |  Segurança  |  Tecnologia  |  Tutoriais  |  Download  |  Web  | Desenvolvimento  |  Fórum 
 Mundo Corporativo  |  Carreira  |  Mercado  |  Telecom  |  Servidores  |  Tecnologia 
    BABOO é um site brasileiro de TI focado em informática, tecnologia, software,hardware, tutoriais e downloads, e soluções de dúvidas através do nosso fórum.

 

Artigos do BABOO