[firebase-br] ASP .NET - Firebird
Rafael Cabral
rafael.cabral em icraft.com.br
Ter Maio 31 14:49:00 -03 2005
Frederico,
<FF>
Acho que entendi agora. Vc tera os providers instalados de todos os bancos
que vc mencionou (Interbase,MySql,SqlServer, Firevird, Oracle) e dependendo
do banco que vc escolher vc simplesmente ira mudar o ConnectionString. Isto
mesmo ?
<RC>
Exatamente. Como vc vê no código, os atributos que estou criando são
interfaces para o connection e o dataadapter, então eles podem receber
qualquer provider, já que são interfaces delas. Esse fenômeno se chama
polimorfismo, pois estou atribuindo objetos de classes derivadas das
interfaces aos objetos de interface.
<FF>
Com isto vou tambem poder criar um DataReader e Command do mesmo
jeito que vc criou um DataAdapter abaixo ?
<RC>
Com certeza. No caso as interfaces são IDbDataReader e IDbCommand.
<FF>
E só mais uma coisa. Onde que
posso criar esta classe para que todos os meus WebForms poderao usa-la ?
<RC>
Vc pode criar esta classe através de uma Class Library, compilá-la numa
DLL e utilizá-la como referência em um projeto. Ou então vc pode criar uma
classe shared.
Espero ter te ajudado. ;)
[]s,
Rafael Cabral
-----Original Message-----
From: Frederico Fernandes [mailto:fredy992 em hotmail.com]
Sent: terça-feira, 31 de maio de 2005 14:32
To: rafael.cabral em icraft.com.br
Subject: RE: [firebase-br] ASP .NET - Firebird
Rafael,
Acho que entendi agora. Vc tera os providers instalados de todos os bancos
que vc mencionou (Interbase,MySql,SqlServer, Firevird, Oracle) e dependendo
do banco que vc escolher vc simplesmente ira mudar o ConnectionString. Isto
mesmo ? Com isto vou tambem poder criar um DataReader e Command do mesmo
jeito que vc criou um DataAdapter abaixo ? E só mais uma coisa. Onde que
posso criar esta classe para que todos os meus WebForms poderao usa-la ?
Agradeço pela sua ajuda.
[]'s
Frederico Fernandes
>From: "Rafael Cabral" <rafael.cabral em icraft.com.br>
>Reply-To: <rafael.cabral em icraft.com.br>
>To: "'Frederico Fernandes'" <fredy992 em hotmail.com>,<lista em firebase.com.br>
>Subject: RE: [firebase-br] ASP .NET - Firebird
>Date: Tue, 31 May 2005 14:08:33 -0300
>
>Eu não sei. Nunca mexi com ADO em .NET. Sò com ADO.NET mesmo. ;)
>
>O código abaixo é ADO.NET.
>
>[]s,
>
>Rafael Cabral
>
>-----Original Message-----
>From: Frederico Fernandes [mailto:fredy992 em hotmail.com]
>Sent: terça-feira, 31 de maio de 2005 14:04
>To: lista em firebase.com.br
>Cc: rafael.cabral em icraft.com.br
>Subject: RE: [firebase-br] ASP .NET - Firebird
>
>
>
>Rafael,
>
> Nao posso usar o ADO para fazer a conexao com o Firebird nao ? Nao
>seria
>melhor ? O que vc acha ?
>
> >From: "Rafael Cabral" <rafael.cabral em icraft.com.br>
> >Reply-To: rafael.cabral em icraft.com.br, FireBase <lista em firebase.com.br>
> >To: <lista em firebase.com.br>
> >Subject: RE: [firebase-br] ASP .NET - Firebird
> >Date: Tue, 31 May 2005 10:41:47 -0300
> >
> >Vc pode criar uma classe onde quando for criar uma conexão, um adaptador
>ou
> >um comando que um objeto de acordo com o banco de dados usado:
> >
> >Ex:
> >
> >public class Conn
> >{
> > IDbConnection dbConn; //Interface de conexão
> > IDbDataAdapter dbAdapter; //Interface de adaptador
> > String dbTipo;
> > String stringConnection;
> >
> > //Instancia conector
> > public void createConnection(String tipo, String strConnect)
> > {
> > switch (tipo)
> > {
> > case "SqlServer": //Provider do Sql Server
> > dbConn = new SqlConnection(strConnect);
> > break;
> > case "MySQL": //Provider do MySQL
> > dbConn = MySqlConnection(strConnect);
> > break;
> > case "Firebird": //Provider do Firebird
> > dbConn = FbConnection(strConnect);
> > break;
> > default: //Provider do Access, Oracle, qualquer um que suporte OleDb
> > dbConn = OleDbConnection(strConnect);
> > }
> > this.dbTipo = tipo;
> > this.stringConnection = strConnect;
> > }
> >
> > //Instancia adaptador
> > public void createDataAdapter(String SQL)
> > {
> > switch (tipo)
> > {
> > case "SqlServer":
> > dbAdapter = new SqlDataAdapter(SQL, dbConn);
> > break;
> > case "MySQL":
> > dbAdapter = new MySqlDataAdapter(SQL, dbConn);
> > break;
> > case "Firebird":
> > dbAdapter = new FbDataAdapter(SQL, dbConn);
> > break;
> > default:
> > dbAdapter = OleDbDataAdapter(SQL, dbConn);
> > }
> > }
> >}
> >
> >Não sei se com o MySQL funciona, mas fiz assim com o Firebird, SqlServer,
> >Oracle e Access e funciona perfeitamente. Recomendo também que vc crie um
> >método Fill para Select para cada adaptador caso precise realizar
>paginação
> >de registros, então nesse caso o createDataAdapter não servirá. Nesse
> >método
> >Fill terá que criar os adaptadores e então dar o Fill imediatamente:
> >
> >Ex:
> >
> >DataSet dtSet;
> >switch (tipo)
> >{
> > case "Firebird":
> > new FbDataAdapter(SQL, dbConn).Fill(dtSet);
> > default:
> > new OleDbDataAdapter(SQL, dbConn).Fill(dtSet);
> >}
> >
> >Espero ter ajudado. E desculpem a todos se isso ficou meio "OFF".
> >
> >[]s,
> >
> >Rafael Cabral
> >
> >-----Original Message-----
> >From: Frederico Fernandes [mailto:fredy992 em hotmail.com]
> >Sent: terça-feira, 31 de maio de 2005 10:18
> >To: lista em firebase.com.br
> >Cc: rafael.cabral em icraft.com.br
> >Subject: RE: [firebase-br] ASP .NET - Firebird
> >
> >
> >
> >Eu utilizo os componentes BDP porque preciso que esta aplicação acesse
> >vários tipos de banco. E eu utilizando este componentes eu não preciso de
> >ficar mudando os componentes para ter acesso a outro banco. E se eu usar
>o
> >Data Provider (Seria o ADO certo ?), eu teria que sempre mudar os
> >compoentes
> >quando utilizar outro banco de dados. Ou tem outra saida ??
> >
> > >From: "Rafael Cabral" <rafael.cabral em icraft.com.br>
> > >Reply-To: rafael.cabral em icraft.com.br, FireBase <lista em firebase.com.br>
> > >To: "'FireBase'" <lista em firebase.com.br>
> > >Subject: RE: [firebase-br] ASP .NET - Firebird
> > >Date: Tue, 31 May 2005 10:12:06 -0300
> > >
> > >Frederico,
> > >
> > >Já tentou usar o Data Provider do Firebird? Vc pode baixá-lo no site
> > >oficial
> > >do Firebird www.firebirdsql.org. Ainda não testei esse provider com o
> > >Interbase, acho que vc pode fazê-lo. ;)
> > >
> > >Eu particularmente não gosto dos componentes Bdp porque fizemos alguns
> > >testes e vimos que às vezes a conexão com o banco caía por algum motivo
> >que
> > >ainda não descobrimos, então para provider de banco genéricos, prefiro
> >usar
> > >o OleDb mesmo. Mas para firebird recomendo o Data Provider do Firebird
> >que
> > >funciona muito bem.
> > >
> > >[]s,
> > >
> > >Rafael Cabral
> > >
> > >-----Original Message-----
> > >From: lista-bounces em firebase.com.br
> > >[mailto:lista-bounces em firebase.com.br]On Behalf Of Frederico Fernandes
> > >Sent: terça-feira, 31 de maio de 2005 09:52
> > >To: lista em firebase.com.br
> > >Subject: [firebase-br] ASP .NET - Firebird
> > >
> > >
> > >Pessoal,
> > >
> > > Estou fazendo um projeto ASP .NET usando dois banco de dados
> > >Interbase
> > >e o Firebird. E usando a linguagem C#. Eu fiz uma pequena busca onde
>usa
> >o
> > >"BdpDataReader" para ler os dados do Banco. Quando eu chamo o metodo
> > >"ExecuteReader" ele me traz os dados e jogo em um "DropDownList".
> >Funciona
> > >perfeitamente. Só que quando a minha query nao retorna nada, a minha
> > >aplicação fica parada quando eu chamo o metodo "ExecuteReader". Isto
> >ocorre
> > >somente no banco de dados Firebird. Quando aponto para o banco de dados
> > >Interbase ele funciona. Estou utilizando os componentes BDP. Abaixo o
>meu
> > >código:
> > >
> > >
> > > private void LerLocalizacoes()
> > > {
> > > BdpDataReader Localizacao = null;
> > > BdpCommand comLocal = new BdpCommand();
> > > comLocal.CommandType = CommandType.Text;
> > > comLocal.Connection = conCentralBusca;
> > >
> > > try{
> > > comLocal.CommandText =
> > > "SELECT CODIGO, DESCRICAO FROM LOCALIZACAO
>ORDER
> > >BY
> > > DESCRICAO";
> > >
> > > conCentralBusca.Open();
> > > comLocal.Prepare();
> > >
> > > // Linha onde a aplicação fica parada.
> > > Localizacao = comLocal.ExecuteReader();
> > >
> > > if (Localizacao != null)
> > > {
> > > while(Localizacao.Read()){
> > > DropDownList.Items.Add(new
> > >
> > >ListItem(Localizacao.GetString(1),Localizacao.GetInt32(0).ToString()));
> > > }
> > > }
> > > }
> > > finally{
> > > Localizacao.Close();
> > > conCentralBusca.Close();
> > > }
> > > }
> > >
> > >_________________________________________________________________
> > >MSN Messenger: instale grátis e converse com seus amigos.
> > >http://messenger.msn.com.br
> > >
> > >
> > >
> > >
> > >
> > >______________________________________________
> > >FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > >Para editar sua configuração na lista, use o endereço
> > >http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > >Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >_________________________________________________________________
> >MSN Messenger: instale grátis e converse com seus amigos.
> >http://messenger.msn.com.br
> >
> >
> >
> >______________________________________________
> >FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> >Para editar sua configuração na lista, use o endereço
> >http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>_________________________________________________________________
>MSN Messenger: instale grátis e converse com seus amigos.
>http://messenger.msn.com.br
>
>
_________________________________________________________________
MSN Messenger: instale grátis e converse com seus amigos.
http://messenger.msn.com.br
Mais detalhes sobre a lista de discussão lista