Artigo Clube Delphi Edição 41 - Stored Procedures selecionáveis
Stored Procedures selecionáveis
Exemplos de utilização com o Firebird e InterBase
Na Edição 39, mostrei como criar stored procedures selecionáveis no Firebird/InterBase (procedures selecionáveis, ou select stored procedures podem ser usadas como fontes de dados, funcionando como "tabelas virtuais"). Nesse artigo mostro como utilizar essas procedures em uma aplicação Delphi, aproveitando para apresentar algumas dicas para o desenvolvimento de interfaces com acesso a dados mais eficazes.
Escolhendo o método de acesso
Quando se fala de banco de dados Firebird/InterBase (FB/IB) e Delphi, estão disponíveis diversas opções de componentes de acesso para os desenvolvedores. Veja um pequeno resumo das opções mais conhecidas, bem como seus prós e contras no quadro "Opções de acesso ao FB/IB".
Para simplificar sua vida e evitar que você tenha que instalar componentes de terceiros, escolhi o dbExpress para uso no exemplo deste artigo. Os links para download de todos os pacotes estão disponíveis no site da Firebase (www.firebase.com.br) na área Downloads>Componentes de acesso.
Opções de acesso ao FB/IB
BDE – Já ultrapassada e descontinuada, a BDE e seus tradicionais componentes de acesso (da paleta BDE) ainda podem ser utilizados para acessar bancos IB/FB, mas com certas limitações: uma delas é o fato de que a BDE não suporta completamente os novos recursos incluídos no dialeto 3 desses bancos. Apesar de o BDE ainda ser uma opção, é totalmente desaconselhável sua utilização;
IBX – O InterBase Express é o pacote mais utilizado devido ao fato de ser gratuito e vir incluído nas instalações do Delphi (a partir da versão 5). Como é desenvolvido pela Borland, no entanto, tem sua compatibilidade com o Firebird ameaçada no futuro, apesar de no momento ser totalmente compatível com o Firebird 1.0;
FIBPlus – Pacote derivado do FreeIB (como também é o IBX), o FIBPlus tem recursos adicionais que o tornam mais poderoso e eficiente. É shareware e seus autores garantem compatibilidade com o IB e o FB;
ZeosLib – Componentes de acesso nativo que suportam diversos bancos de dados inclusive o IB/FB. O Zeos é gratuito, mas vem sendo aprimorado muito lentamente; no entanto o fato de suportar diversos bancos de dados e ser cross-platform o torna interessante para aqueles que querem ter um código com maior independência do BD;
MDO – O Mercury Database Objects é um projeto open source, e tem como desenvolvedores vários brasileiros. Também é derivado do FreeIB e promete ser um substituto para o IBX sem comprometer a compatibilidade com o Firebird. No entanto, ainda no momento de fechamento deste artigo ainda estava em desenvolvimento, sem uma versão final lançada;
IBO – Dentre todos os pacotes de componentes de acesso, o IBO é o mais completo e maduro. Possui componentes derivados de TDataset, portanto compatíveis com qualquer controle data-aware; inclui também componentes "nativos" (queries, combos, grids, edits etc.) desenvolvidos especificamente para aproveitar todos os recursos do IB/FB. É vendido através da licença Trustware, pela qual você pode obter uma licença temporária, e fazer o registro somente quando estiver obtendo retorno financeiro com a aplicação que utiliza o IBO. O IBO tem garantia de compatibilidade com o IB e o FB dada pelo autor. É meu pacote preferido;
dbExpress – Substituto da BDE, o dbExpress também acessa o IB/FB. O driver dbExpress para o InterBase que vem como padrão no Delphi, funciona bem com o FB 1.0 mas sofre do mesmo problema que o IBX – pode deixar de ser compatível com o FB nas suas próximas versões. Felizmente já existe um driver dbExpress desenvolvido especificamente para o Firebird, que é vendido no modelo de shareware."