ine 5612 – dsooii prof. frank siqueira - turma 04238a equipe: jucemar, rodrigo, william ado.net...

Click here to load reader

Upload: internet

Post on 18-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

  • Slide 1
  • INE 5612 DSOOII Prof. Frank Siqueira - Turma 04238A Equipe: Jucemar, Rodrigo, William ADO.NET Framework
  • Slide 2
  • Introduo ao ADO.net Hoje h novas necessidades e desafios nos modelos de programao para acesso a dados em relao ao antigo modelo cliente/servidor. H um crescimento no nmero de aplicaes Web que rodam no cliente, sendo assim no se pode manter uma conexo aberta durante muito tempo. As aplicaes hoje so desenvolvidas em multicamadas e h grandes desafios de como passar esses dados entre essas camadas.
  • Slide 3
  • Introduo ao ADO.net O modelo de programao atual pede que ns tenhamos um modelo desconectado. O ADO.net foi criado pensado justamente nessas novas necessidades e desafios do novo modelo de programao. Constitui-se, basicamente, em um conjunto de classes para trabalhar com dados. Inclui ferramentas para se conectar a um banco de dados, executar comandos e recuperar os resultados. Os resultados so processados diretamente, colocados em um objeto DataSet e exibidos para o usurio. ADO.NET uma evoluo do ADO (ActiveX Data Objects).
  • Slide 4
  • Sistemas Operacionais compatveis ADO.net Windows Vista Windows XP Windows 2000 Windows NT 4 com SP6a Windows Millennium Edition Windows 98 Windows CE
  • Slide 5
  • Caractersticas compatvel com aplicaes de cenrios conectados; compatvel com aplicaes de cenrios desconectados; um modelo de programao com suporte avanado para o XML; Permite trabalhar com mltiplas fontes de dados diferentes ao mesmo tempo e de uma mesma maneira;
  • Slide 6
  • Caractersticas Totalmente integrado ao.NET Framework; Como nativo, sua API pode ser utilizada com as diversas linguagens que fazer parte do.NET Framework: Visual Basic, C#, entre outras; sucessor do ADO, porm mais flexvel; Possui um conjunto de Classes, Interfaces, Estruturas e Enumeraes que gerem o aceso a dados dentro do.NET Framework;
  • Slide 7
  • Compatibilidade com fontes de dados. Permite a comunicao com qualquer banco de dados relacionais entre outras fontes como arquivos CVS e Excel e etc. ADO.net SQL Server MySQLFireBirdOracleSybaseAccessXML arquivos textos
  • Slide 8
  • Arquitetura do ADO.net
  • Slide 9
  • Arquitetura do ADO.net - DataProvider So bibliotecas que possibilitam uma maneira comum de interagir com uma fonte especfica de dados. Cada biblioteca possui um prefixo que indica qual provedor ela suporta.
  • Slide 10
  • DataProvider - Principais provedores Nome do Provedor API prefixoDescrio ODBC Data ProviderOdbcFonte de dados com uma interface ODBC interface. Geralmente usada para banco de dados antigos OleDb Data ProviderOleDbFonte de dados que expe uma interface OleDb interface, ou seja: Access ou Excel Oracle Data ProviderOraclePara banco de dados Oracle SQL Data ProviderSqlPara interao com o Microsoft SQL Server
  • Slide 11
  • Arquitetura do ADO.net - DataProvider Connection: Usado para se conectar a base de dados Command: Usado para criar comandos dentro da fonte de dados DataReader: Fornece um acesso conectado somente-leitura e somente- para-frente a uma fonte de dados. O DataReader efetua uma nica passagem pelo conjunto de registros do banco da forma mais eficiente possvel. So objetos que no podem ser diretamente instanciados. O DataReader retornado pelo mtodo ExecuteReader do objeto Command.
  • Slide 12
  • Arquitetura do ADO.net - DataProvider DataAdapter: Componentes encarregados de chamar os comandos de leitura, atualizao, incluso e excluso de informaes em uma fonte de dados pode ser usado para preencher um DataReader ou um DataSet. O DataAdapter promove associao entre o provedor de dados.NET e o DataSet. um mediador, que facilita a comunicao entre o banco de dados e o DataSet. O DataAdapter l os dados do banco e os armazena dentro do DataSet atravs do mtodo Fill. Ele tambm escreve as alteraes efetuadas nos dados, a partir do DataSet, para que elas posteriormente sejam gravadas no banco atravs do mtodo Update.
  • Slide 13
  • Arquitetura do ADO.net - DataSet DataSet: Fornece um representao relacional em memria de dados, sendo um conjunto completo de dados que incluem tabelas que contm dados, restries de dados e relacionamentos entre as tabelas. O acesso desconectado. o principal componente da arquitetura ADO.NET, armazenando dados do banco no lado do cliente. Funciona como uma coleo de uma ou mais tabelas, que forma os objetos DataTable. Cada DataTable corresponde a uma nica tabela ou viso. Assim, um objeto do tipo DataSet simula a estrutura da base de dados qual se efetuou a consulta.
  • Slide 14
  • Arquitetura do ADO.net - DataSet Criada para manipular os dados independente da fonte; Pode receber fontes de dados de bancos de dados atravs do DataAdapter; Pode trabalhar diretamente com arquivos XML; Pode ainda trabalhar com fontes de dados diferentes dentro de um mesmo DataSet; Permite manipular os dados, efetuando leituras e alteraes necessrias no modelo desconectado, sem a necessidade de manter a conexo aberta com o banco de dados.
  • Slide 15
  • Arquitetura do ADO.net - DataSet DataRelationCollection: Permite a criao de relacionamentos entre as DataTables contidas dentro do DataSet. Com tudo isso tem-se um modelo desconectado em memria algo muito parecido com que voc possui em um banco de dados.
  • Slide 16
  • Alterao na base - Desconectado Abrir ligao Preencher o DataSet Fechar ligao Processar o DataSet Abrir Ligao Atualizar a fonte de dados Fechar a ligao
  • Slide 17
  • Exemplos de Utilizao C# using System.Data.SqlClient; // Instancia um objeto DataSet DataSet objetoDataSet = new DataSet(); // Instancia um objeto conexo e passa dados para a conexo como parametros SqlConnection conex = new SqlConnection(Servidor, DB, User, Senha); // Abre a conexo conex.Open(); // Instncia um objeto DataAdapter especializado em Fontes de dados SQL SqlDataAdapter adapter = new SqlDataAdapter();
  • Slide 18
  • Exemplos de Utilizao C# // Inicializa o atributo do objeto DataAdapter responsvel pelas consultas ao BD passando como parametro a consulta e a conexo adapter.SelectCommand = new SqlCommand(select * from Usuarios, conex); //Cria a tabela Usuarios dentro do objeto DataSet e preeche ela com o resultado da consulta ao BD adapter.Fill(objetoDataSet, Usuarios); // Fecha a conexo com o servidor conex.Close();
  • Slide 19
  • Exemplos de Utilizao C# //Retorna a tabela Usurios do objetoDataSet e armazena em uma variavel DataTable tabela = objetoDataSet.Tables[Usuarios"]; //Altera o campo cidade do primeiro usurio tabela.Rows[0][cidade"] = Florianopolis"; //Efetua a atualizao da base de dados a partir do objetoDataAdapter adapter.Update(objetoDataSet);
  • Slide 20
  • ADO : ActiveX Data Objects (ADO) mecanismo Component Object Model criado pela Microsoft para que programas pudessem trocar informaes com as bases de dados. Pacote Microsoft Data Access Components (MDAC), disponibilizado gratuitamente, tem suporte a ASP, Delphi, PowerBuilder e VBA ADO : aplicao em ambientes Cliente/Servidor com acesso simultneo de vrios usurios. Era utilizado em pginas dinmicas desenvolvidas em ASP, que rodavam VBScript e JavaScript no servidor. Histrico
  • Slide 21
  • ADO x ADO.NET ADO : utilizava um conjunto comum de classes para executar conexes a bancos de dados, recuperar registros e efetuar atualizaes nesse banco, executar procedures, etc. ADO : basicamente trs objetos, que no ADO.NET foram expandidos e especializados para suportarem as funcionalidades dos seus fornecedores de acesso. No esquema ao lado, Xxx pode ser alterado para Odbc, Sql, dentre outros. ADO.NET : possui dois conjuntos de classes que so utilizadas para cessar os dados, dependendo de como eles esto armazenados. ADO.NET : classes Disponibilizadas em pacotes diferentes. Para acessar um SQL Server, utiliza classes do pacote System.Data.SqlClient. Para acessar dados em outras fonts (como Excel, MySQL, Access, incluindo SQL Server), so utilizadas as classes do pacote System.Data.OleDb namespace.
  • Slide 22
  • ADO x ADO.NET O ADO utiliza o objeto Recordset para navegar e manipular dados. O ADO.NET substituiu esse objeto por outros trs : DataReader e DataAdapter (para connected recordsets), e DataSet (para disconnected recordsets). O Recordset funciona como uma nica tabela. Se for necessrio que ela contenha dados de vrias tabelas diferentes, ser necessrio executar o comando JOIN para que todos os registros sejam reunidos em uma nica relao.
  • Slide 23
  • ADO x ADO.NET OperaoADOADO.NET Suporte a XMLLimitadoCompleto Representao dos dados em memria RecordsetDataset TabelasSuporta apenas uma tabela, demandando uso do operador JOIN Suporta mltiplas tabelas, com simulao da estrutura do banco NavegaoVarredura sequencial das colunas com o mtodo MoveNext Colunas representadas como colees, permitindo acesso direto a dados e posies especficas Conexo ao banco de dados Objeto recordset permite operaes offline, mas o ADO foi desenhado para operar com uma conexo sempre ativa base de dados. Conexo dura apenas o tempo necessrio para efetuar operaes no Banco de Dados como Select ou Update. Informaes so lidas para dentro do objeto dataset, onde sero trabalhadas sem que precise haver conexo ativa com a base de dados. Passagem de dadosComunicao em modo binrio (Modelo COM - Composed Objected Model-marshaling) XML. Comunicao atravs de um data adapter, permite controlar como os dados so transmitidos Compartilhamento de dados entre aplicaes Suporte limitado ao tipo de dados que podem ser transmitidos do recordset Transmisso de dados baseada em formato XML, sem restries ao tipo de dados que trafegam
  • Slide 24
  • Referncias http://www.macoratti.net/08/11/c_adn_1.htm http://msdn.microsoft.com/pt-br/data/gg252014.aspx http://www.macoratti.net/adn_bpu1.htm http://www.dei.isep.ipp.pt/~jtavares/ADAV/downloads/guiao_ADO_dotN et.pdf http://www.macoratti.net/08/11/c_adn_1.htm http://msdn.microsoft.com/en-us/library/ms973217.aspx http://support.microsoft.com/kb/183606/en-us?fr=1 http://www.macoratti.net/d040901.htm http://pt.wikipedia.org/wiki/ActiveX_Data_Objects http://www.devguru.com/features/tutorials/adonet/AdoNet1.asp