Slideshow transcript
Slide 1: Desenvolvimento em .Net Acesso a Dados
Slide 2: Objectivos ● perceber objectivos do ADO.NET ● conhecer arquitectura do ADO.net ● saber o que são Datasets ● saber o que são Datatables ● saber o que são typed datasets ● saber criar datasets e datatables dinamicamente
Slide 3: Objectivos ● conhecer operações básicas com datasets e tabelas ● perceber conceito de serialização de dados ● identificar objectos relativos a ligações fisicas à base de dados ● conhecer interfaces que têm que ser implementados por dataproviders
Slide 4: Objectivos ● perceber como tirar vantagem de “programação de dados” usando interfaces ● saber utilizar connection, command, datareader, dataadapter ● perceber como é conseguida a integração entre progress e .net ● saber como é feita a integração progress .net no MultiITV
Slide 5: ADO.NET ● Infraestrutura para acesso a dados ● Independente da base de dados ● “Disconnected architecture” ● Convertivel para xml
Slide 6: ADO.NET
Slide 7: Dataset ● base de dados em memória ● tabelas + relações – >1 tabela ● desligado da base de dados – depois de carregado ● desconhece completamente a base dados – tanto pode reter dados vindos de SQL Server, Progress, XML, ...
Slide 8: Dataset e DataTable Mental Note: schema vs dados
Slide 9: Dados sem acesso a dados ● Criar definição de dataset ● Criar definição de datatable ● Criar definição de datarow ● Criar definição de datacolumn ● Inserir dados ● Criar Projecto 0305
Slide 10: Operações básicas com datasets e tabelas ● dataset.ReadXml ● dataset.WriteXml ● datatable.Select
Slide 11: Exercicio ● Usando o projecto 0305 criar o seguinte interface e testar o código apresentado
Slide 12: Serializar ● “Magia” que transforma um objecto em texto – exemplo Xml referente a Dataset – mas pode ser aplicado a todo o tipo de objectos ● Também existe o inverso – deserializar ● Interessante para enviarmos objectos entre sistemas ou processos...
Slide 13: Typed Dataset ● Typed => que tem indicação do tipo de dados ● Ao acedermos a uma coluna de uma linha numa tabela de um dataset – Ds.Tables(0).Rows(0).Item(0) – não fazemos ideia do que está lá dentro (string, numero, data, ...) ● Typed Dataset resolve essa questão e ainda: – Ds.Tables(0).Rows(0).NomeColumn – fornece uma sintaxe mais amigavel
Slide 14: Typed Dataset ● Se tivermos a definição da tabela/dataset em XSD ● podemos usar o utilitário xsd.exe – typed dataset não é mais do que um dataset com mais propriedades ● herança....
Slide 15: Exercicio ● No último projecto... ● Project / Add New Item / XML Schema – mudar nome para tabela.xsd
Slide 16: Exercicio ● compilar projecto ● acrescentar form com seguinte código
Slide 17: Ligação a dados
Slide 18: Data Providers ● Implementam a ligação fisica à base de dados ● objectos principais – connection => ligação fisica à base de dados – command => comando para ser executado na base de dados – datareader => resultado do comando num formato forwardonly, readonly – dataadapter => resultado do comando em formato dataset
Slide 19: Data Providers ● Disponiveis com a framework – MS SQL Server => System.Data.SqlClient – ODBC => System.Data.OdbcClient – OLEDB => System.Data.OleDbClient
Slide 20: Interfaces ● Connection => IDbConnection ● Command => IDbCommand ● DataReader => IDbDataReader ● DataAdapter => IDbDataAdapter
Slide 21: Command ● Execute – devolve só o número de linhas afectadas com o comando. – ideal para inserts / updates / deletes ● ExecuteScalar – devolve somente o valor da primeira coluna da primeira linha – ideal para calculos. exemplo: comando que calcula um saldo
Slide 22: Conjuntos de Dados ● Command – ExecuteReader ● devolve um datareader – forward only, read only – DataAdapter ● Fill – cria um dataset
Slide 23: Exercicio ● Criar projecto 0306 ● testar DataReader
Slide 24: Exercicio ● testar DataAdapter
Slide 25: Parametros ● Um comando pode ter parametros – cada parametro tem um tipo, direcção e valor ● Acrescentar esta opção no projecto 0306
Slide 26: Integração Progress / ADO.Net ● ADO Datasets => Progress DataSets ● ADO DataTables => Progress Table / Temp- Tables ● Progress 9.1D e superior inclui – ProxyGenerator ● gera uma DLL que permite o acesso via Application Server a programas Progress ● esses Programas podem (entre outras coisas) devolver – ADO.Net DataTables, ADO.Net DataSets, ADO.Net Typed DataSets
Slide 27: Integração Progress / ADO.Net ● Vantagens – 0 ligações ODBC – Triggers OK ● Implica que o programa esteja bem estruturado – Dados de Entrada e Dados de saída perfeitamente definidos ● Bonus – qualquer programa Progress fica (quase) logo disponivel nas 2 plataformas ● e com esforço minimo fica disponivel via webservices
Slide 28: Integração Progress / ADO.Net ● Mais uma razão para nos programas Progress: – separar acesso a dados, visualização dos mesmos – não escrever directamente nas tabelas. – nunca usar variaveis globais, reduzir em 99% a utilização de variaveis com um ambito maior do que o procedimento onde são defindas
Slide 29: Integração Progress / ADO.Net ● E ainda: – como parte do MultiITV ● 1 DLL muito interessante=> ProxySistemaBase.dll ● 3 Programas Progress
Slide 30: ProxySistemaBase.dll ● sb221.p – Executa uma sql para a tabela e condição definidas, devolvendo os campos especificados.
Slide 31: ProxySistemaBase.dll ● sb250-01.p – Executa um programa progress e devolve uma tabela. ● inspirado no Command.ExecuteReader / DataAdapter.Fill ● sb250-02.p – Executa um programa progress e devolve um valor. ● inspirado no Command.ExecuteScalar
Slide 32: Exercicio ● Acrescentar no projecto 0306 referencias para: – ProxySistemaBase.dll – Progress.Messages – Progress.o4glrt – Progress.ssl
Slide 33: Exercicio
Slide 34: Objectivos ● perceber objectivos do ADO.NET ● conhecer arquitectura do ADO.net ● saber o que são Datasets ● saber o que são Datatables ● saber o que são typed datasets ● saber criar datasets e datatables dinamicamente
Slide 35: Objectivos ● conhecer operações básicas com datasets e tabelas ● perceber conceito de serialização de dados ● identificar objectos relativos a ligações fisicas à base de dados ● conhecer interfaces que têm que ser implementados por dataproviders






Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 0 (more)