[firebase-br] Dicas para desenvolvimento de aplicacao com firebird

Eduardo Jedliczka eduardo em gerasoft.com.br
Qua Fev 9 17:45:56 -03 2005


Como diria o tio Jack (o estripador) "vamos por partes..."

No IBO a transação pode ser curta ou longa, pois existe o auto-commit...
sendo assim não é necessário utilizar ApplyUpdates, ou nada mais, fez tá
feito e não há como desfazer... hehehe, então a transação é fechada (dá para
verificar ha quanto tempo cada transação está aberta pelo componente, e
programar um tempo para ele fechá-la sozinho...)

Mas se é necessário segurança, ou seja, no caso de uma venda em que um
rollback pode ser efetuado, configura-se a transação para trabalhar assim, e
os inserts, deletes e updates são enviados imediatamente para o banco (com a
opção de recarregar, ou não, o registro corrente após um insert, update ou
antes de um update), então uma transação pode ficar MUITO tempo aberta, mas
foi VOCÊ, digo, o desenvolvedor que pediu isto...e simplesmente commitar ou
dar um rollback.

A cache do IBO é carregada a medida em que você navega nos registros (de x
em x para não derrubar o servidor, é claro) e não quando a query é aberta,
(embora seja possível definir quantos registros serão carregados ao abrir
uma query)

em termos do cache dá para forçar a recarga completa ou de apenas um
registro, ou seja, não vejo problemas...

O IBO possui muitos componentes, para os variados propósitos, mas nunca
precisei de acesso uni-direcional, mas imagino que seja possível... Mas
possui componentes específicos para WEB (que nós não compramos, então não
sei como funcionam)

Se deseja estar sempre com os registros "fresquinhos" pode-se capturar os
eventos do Servidor e "forçar" a recarga do registro em questão...

Outra coisa, se vai desenvolver em N-Tier, uma boa alternativa é fechar e
re-abrir a query a cada conexão / transação, mas isto é outra história...

Só te digo uma coisa, o IBO é extremamente complexo e poderoso, mas depois
que pega a manha, não dá para comparar com os "genéricos", pois é
covardia...

[s]

==========================
Eduardo Jedliczka
Gerasoft Informática
Apucarana - Pr
==========================

----- Original Message ----- 
From: "Thiago - Enter&Plug Software" <jeandeadlucky em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, February 09, 2005 5:16 PM
Subject: Re: [firebase-br] Dicas para desenvolvimento de aplicacao com
firebird


> Eduardo,
>
> >Explico no IBO ao realizar um updade, este comando é enviado diretamente
ao
> >Banco e não fica esperando por um ApplyUpdates... e após isto, o IBO
> >recarrega "apenas" este registro, permitindo a navegação normalmente nos
> >registros que se encontram no cache local.
>
> Certo, mas e quando eu tenho uma venda, por exemplo? ou tenho de alterar
uma
> porção de itens. Tá certo que tem a questão da Transação, mas deixá-la o
> mínimo de tempo aberto para evitar deadlocks não seria o mais ideal?
>
> >a Query NÃO fecha!!!
>
> Acredito que a query não fecha por ter as informaçõe em cache...
>
> >Mas antes de alterar um registro o próprio componente recarrega este
> >registro evitando assim, alterar uma versão antiga.
>
> Não seria desnecessária esta recarga, uma vez que com um simples Updater
com
> WhereAll já identificaria a modifição no tal registro? Sem contar, que o
> registro está sendo RECARREGADO...
>
> >Em certas circunstâncias pode ser necessário manter "sempre" a última
> >versão
> >do registro, neste caso o IBO pode ser configurado para trabalhar desta
> >forma.
>
> Interessante.. como o componente faz isso?
>
> As respostas que você me deu, falam sobre a arquitetura do IBO. Eu
gostaria
> de saber como ficaria estruturada uma aplicação multicamadas usando o
IBO...
> Com ClientDataSet também? Neste caso teriamos cache em dois lugares
> diferentes, quando o interessante é ter em apenas um, no caso, no cliente.
> Existe uma forma de desabilitar o cache do IBO, tornando ele
Unidirecional?
>
> Quero deixar claro que não tô afim de fazer apologia a este ou aquele
> componente... só estou querendo saber como funciona o IBO... pois,
confesso
> que de tanto ouvir falar dele, já deu até vontade de usar :-D
>
> Obrigado mais uma vez Eduardo!
>
> Thiago
>
>
>
> ----- Original Message ----- 
> From: "Eduardo Jedliczka" <eduardo em gerasoft.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, February 09, 2005 4:55 PM
> Subject: Re: [firebase-br] Dicas para desenvolvimento de aplicacao com
> firebird
>
>
> Thiago,
>
> Não desenvolvemos aplicativos N-Tier, apenas 2 Camadas, o velho C/S
> (Cliente/Servidor)...
>
> Mas a questão é a seguinte, o IBO tem cache sim, mas ela não é em nada
> semelhante ao CDS...
>
> Explico no IBO ao realizar um updade, este comando é enviado diretamente
ao
> Banco e não fica esperando por um ApplyUpdates... e após isto, o IBO
> recarrega "apenas" este registro, permitindo a navegação normalmente nos
> registros que se encontram no cache local. e após um Commit, a Query NÃO
> fecha!!!
>
> Mas antes de alterar um registro o próprio componente recarrega este
> registro evitando assim, alterar uma versão antiga.
>
> Em certas circunstâncias pode ser necessário manter "sempre" a última
versão
> do registro, neste caso o IBO pode ser configurado para trabalhar desta
> forma.
>
> Quanto ao Multi-tier, não vejo problemas, apenas acho que pode ser adotada
> outras soluções como um componente mais leve...
>
> [s]
>
> PS: Não sei se consegui responder sua dúvida, qquer coisa, pergunte...
>
> ==========================
> Eduardo Jedliczka
> Gerasoft Informática
> Apucarana - Pr
> ==========================
>
>
>
>
>
> ______________________________________________
> 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
>
>





Mais detalhes sobre a lista de discussão lista