PARA OS GURUS DE ACESSO A DADOS

MARCOS 14/07/2011 16:37:03
#379184
Prezados colegas,
O acesso a Fontes de Dados, é algo necessário em quase todos os aplicativos profissionais.
Eu estou tentando criar uma classe, que possa ser utilizada em qualquer aplicativo que exija
o acesso a uma fonte de dados.Peço aos colegas, que tem bastante experiência no acesso
a dados, que me dê sua opinião sobre a classe em anexo:

1.) Os métodos são suficientes, ou estão faltando métodos para uma classe proffissional de acesso a dados?

2.) A sintaxe esta correta,ou tem erros?

3.) O tratamento de erros esta correto, ou não é deste modo que se deve tratar os erros?

Ou seja, qualquer sugestão que melhore a classe.




KERPLUNK 14/07/2011 17:25:06
#379194
Resposta escolhida
Bem vc pode usar OleDb para a maioria dos bancos de dados, mas a performance cai drasticamente. O que vc está tentando fazer é o que conhecemos como [Ô]bala de prata com ponta de madeira[Ô], que mata lobisomem e vampiro ao mesmo tempo. Entenda que com na plataforma .NET cada tipo de conexão, vai utilizar um objeto diferente, por isso uma classe de conexão que seja útil em mais de um banco de dados, deve usar esses objetos para o acesso.
Em suma, para conectar com Oracle, deve usar o OracleConnection, para SQL Server, SqlConnection, para um banco OleDb OleDbConnection, para um banco ODBC, OdbcConnection e assim por diante.
Então o que vc pode fazer é uma classe que tenha métodos que retornem os objetos específicos de cada banco de dados. Além disso, sou a favor do tratamento de dados como objeto, usando o DataReader para popular uma classe e aí sim, usar essa classe para trabalhar, seja ela uma única entidade ou uma lista de entidades. Sintaticamente me parece certo, mas por não ter [Ô]rodado[Ô], não posso afirmar.
Quanto ao tratamento de erros, a coisa complica um pouco mais, o erro, pode ser de vários tipos, no seu caso, vc está tratando a genérica Excpetion, um tratamento de erro(throwing) é mais adequado quando [Ô]pega[Ô] os erros por tipo e os trata apropriadamente.
LLAIA 14/07/2011 18:41:37
#379207
Já considerou o Entity Framework?
RODRIGOFERRO 14/07/2011 19:47:26
#379208
Entity ja tem todo esse esquema nativo, e tem suporte garantido para Mysql, Firebird e SQL, ele ja tem toda a estrutura pronta... e nada de SQLS medonhas...

Abraços
MARCOS 15/07/2011 09:54:54
#379239
Pessoal,muito obrigado!!!

- Vou seguir o conselho do Kerlunk e modificar a classe de modo a trabalhar com objetos [Ô]connection[Ô] especificos do Banco.

- Também irei verificar como funciona o Entity Framework

Tópico encerrado , respostas não são mais permitidas