[firebase-br] Duvida

Daniel Buona danielbuona em aflsistemas.com.br
Sex Mar 26 15:21:03 -03 2010


E ai Cantu, blz?

Então cara, assim velho, com certeza não usamos o BD apenas como repositório
de dados.... usamos PK e FK dele tb!!! Rs
Mas assim, o que é complicado em um sistema multi-banco em n-camadas é
replicar a regra de negôcio para cada banco que o sistema irá suportar....
imagine, meu sistema dá suporte a 3 bancos (SQLServer, Oracle e Firebird),
eu tenho um SP monstruosa que gera alguma coisa.... ter que refazer nos 3
banco.... manutenção nos 3 banco.... inviável...

Daniel Buona
AFL Sistemas
fone/fax : (14) 3405-1199  - Pompéia / SP
www.aflsistemas.com.br
skype:danielbuona.afl 
P Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO
AMBIENTE


-----Original Message-----
From: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
On Behalf Of Carlos H. Cantu
Sent: quinta-feira, 25 de março de 2010 15:48
To: FireBase
Subject: Re: [firebase-br] Duvida

O conceito de 3 camadas realmente transmite a idéia que o BD seja usado
somente para repositório de dados, mas eu não concordo 100% com isso, ou
então vamos voltar para a era dos "DBFs da vida".

Eu suma, apesar de nunca pessoalmente ter desenvolvido nada em 3 camadas,
acredito que mesmo neste modelo, ainda há espaço para ter algumas coisas
implementadas em triggers, procedures e regras de integridade. Entra aí a
perspicácia do desenvolvedor de saber o que deve ser feito no servidor de
aplicação, e o que pode ser mantido no BD.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org www.warmboot.com.br -
blog.firebase.com.br

DB> Olá, boa tarde!

DB> Bom, vou explicar um modelo em 3 camadas que implementamos recentemente.

DB> Basicamente um sistema em 3 camadas tem: 
DB> - Camada Client : Interface e interação com o usuário
DB> - Camada de Negôcio (Server)- É a aplicação que provem toda a regra 
DB> do sistema, desde um simples calculo de desconto até uma geração 
DB> completa da NF-e por exemplo.
DB> - Banco de dados - Nesse modelo N camadas, a BD serve apenas para 
DB> gravar informações. Não existe operações no banco como trigger, SP, SF,
nada.

DB> Aqui na empresa temos dois ERP, um para pequenas e médias empresa 
DB> (Firebird) e outro para grandes empresa (Oracle). O fato de ter 2 
DB> sistema é uma politica antiga que foi implementada, mas enfim.
DB> Com a necessidade da NF-e, precisamos criar os processos para os 2
ERP's....
DB> mas fazer 2 vezes não rola, nossa solução foi:
DB> - Criamos uma aplicação servidora que iria se conectar em QUALQUER 
DB> banco e utilizar algumas tabelas padrões para fazer todo o processo 
DB> da Nfe. E como é uma aplicação server também iria disponibilizar 
DB> métodos de consulta, cancelamento de NF, geração de PDF, etc.
DB> - Criamos uma app Client para que o usuário pudesse visualizar as 
DB> Nfes, onde iria se conectar na app server e ter as opções
disponibilizadas no server.

DB> Então, tanto o ERP Firebird quanto o ERP Oracle utilizam a mesma 
DB> solução para emissão de NF-e, porque quem define para a app Client 
DB> qual banco está usando é a app Server. Inclusive tem clientes que 
DB> estão utilizando geo-distribuição (server está em SP, e tem o client 
DB> rodando em manaus)

DB> Agora vou listar alguns problemas que tivemos:
DB> Como utilizamos os drivers nativos do DBExpress, tivemos muita 
DB> incompatibilidade de campos ao acessar as base oracle ou firebird. 
DB> Tipo, se eu adicionasse um campo do tipo NUMERIC(6) do Oracle, a 
DB> Query retornava um tipo BCD, ao tentar usar a base Firebird com o 
DB> mesmo tipo de campo NUMBER(6), dava erro de esperando FMTBCD, ou 
DB> seja, não conseguimos com o driver nativo utilizar master-detail.
DB> Fora isso, é show de bola!

DB> Daniel Buona
DB> AFL Sistemas
DB> fone/fax : (14) 3405-1199  - Pompéia / SP www.aflsistemas.com.br 
DB> skype:danielbuona.afl


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista