[firebase-br] Por favor ajuda sobre conexão dinamica ao banco

Gladiston Santana gladiston em vidy.com.br
Seg Out 10 18:26:04 -03 2016


Você irá manter o DBX ou migrará para o FireDac?
Se for aproveitar para mudar para firedac acompanhe A série de Delphi
Academy que estão no Youtube.
Algumas coisas que lhe disseram não faz nenhum sentido.
Quem programa em linguagens diferentes do Delphi, especialmente web, não
usa conexões persistentes então faz todo sentido manter o tempo de conexão
o menor possível, em php, há comandos que abrem conexões dinamicas em que
você está conectado e só transaciona quando vai fazer algo e sempre
aproveita uma conexão existente numa próxima.

Se seu programa está todo implementado no lado servidor, sua migração será
fácil. É basicamente um search/replace nos componentes. Se não me falha a
memoria, existem um aplicativo de cmd que acompanha o Delphi que faz isso e
que poucos delphinianos conhecem.

Se quiser, poderá trocar componentes que lidam exclusivamente com
procedures por selects comuns, eu não vejo diferença.
A questão da transação no Firedac, do jeito que está você não muda nada,
mas se precisar poderá fazer depois com quase nada de esforço.

Eu gostava de usar duas transações com os componentes do IBO, uma para
consulta e outra para atualizações, pois o segundo fica pouco tempo
enquanto a primeira fica aberta o tempo que o sistema estiver aberto. Mas
no Firedac isso não faz muito diferença porque seus commits podem ser
programados para realizar refresh ao inves de fechar os datasets.

um abraço e boa sorte.

Em 5 de outubro de 2016 08:20, <a.lima.silva em terra.com.br> escreveu:

> Caros colegas de lista, solicito a ajuda dos companheiros na seguinte
> questão :
>
> Ambiente : Firebird 2.5 Super Classic  , Delphi XE DBExpress e 55 estações.
>
> Recebi um sistema  feito em Delphi 7 para migrar para Delphi XE, tive que
> modificar a estrutura  de transações do DBX do D7
>
> de:
>
> var TD: TTransactionDesc;
> ...
> TD.TransactionID := Random(999999999);TD.IsolationLevel :=
> xilREADCOMMITTED;Banco.StartTransaction(TD);
>
> para :
>
> var
> T  : TDBXTransaction;
> Conn : T SQLConnection
> ...
> T := Conn.SqlConection.BeginTransaction(TDBXIsolations.ReadCommitted);
> Conn.CommitFreeAndNil(TransSelect);
> ...
>
> Neste sistema 90% do processamento é realizado por StoredProcedures
> atraves do objeto TSQLStoredProc
>
> Estranhamente verifiquei travamentos nessas SP, mesmo no aplicativo
> estando sendo explicitamente iniciado e finalizado uma transação
>
> Nostalgicamente lembrei que quando usava IBX como componente de acesso,
>  fazia meu StartTransaction e Commit e não havia esse problema.
>
> Para contornar essa situação, comecei a criar em RunTime as conexões a
> partir do TSQLConnection , iniciar , executar, finalizar a transação e
> destruir a conexão.
>
> Realmente feito isso destravou e o monitor do IBExpert nem mesmo consegue
> registrar a existência dessas conexões adicionais.
>
> Um DBA que conversei  ( especialista em Oracle e aplicativos web mobile  )
> disse que no Oracle não se deve manter conexões aberta por muito tempo e
> essa é a maneira correta.
>
> Um colega antigo que trabalha com Delphi disse que terei inúmeros
> problemas ao fazer as ações  fora da conexão principal.
>
> Nos exemplos que vejo na internet vejo as aplicações por um SQLConnection
> criam uma conexao e tudo trafega dentro do contexto dessa conexão ( o que
> era feito ).
>
> Percebi em laboratório um aumento  em muito grande da velocidade, parece
> que fazer por conexões separadas  da principal "emula uma Thread" , mas
> ante a inexperiência se o  caminho adotado vai me dar problemas sérios
> futuros, resolvi ler mais e perguntar aos especialistas do uso diário.
>> Obrigado.
>
>
> ______________________________________________
> 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://www.firebase.com.br/
> pesquisa_lista.html




-- 
--
B em B@BU     iB em M@B.  B em MBBO   MBBMMB em B@BZLr    E@@@@i      r@@@BU
vB em M@O     E em B@Bu   BBBM em 0   G em MMM@N8MBB em ZP5r  B em B@k      8B@@O
 OB em B@q   2 em BBBM    B em B@BO   BB em B@B,.:,7B em B@@L uB em B@,    OB em B@.
 ,@@@B@   @BBB@,    @BBB em 8   M em M@@@     PB em B@B  @@@BN   iB em B@L
  U em B@B2 LB em B@X     B em MBBO   MBBM em B     i em BBB@. 7 em B@Bi  B em B@E
   B@@@BiM em M@B.     @BBM em G   M em MMB@     v@@M em B,  G em B@Z v em B@B.
   7B em B@O em B@B5      B em B@B8   BBBM em B     Z@@@B@   iB@@@2 em B@Br
    NB em M@B em B8       @B em B@8   M em B@B em i:i75 em B@B em r    E@@B em B@Bq
    . em B@@@B@:       B em B@B@   @B@@@B em B@B@@@ME;     .BB em MBB@
     55.ANOS        OMOGBS   PBZGGOOMOO117,        7 em BBB@r
     ==============================================r@@@@F=====
     Gladiston Santana                             8 em B@B,
     Supervisor de TI                             G em B@B7
     Tel.:+551147873122 R:228                    :@B em B0
     Grupo VIDY - SGQ ISO9001 - 55 ANOS          @B em B@.
     Visite nosso site: www·vidy·com·br         BB@@@u
     Visite também : www·expolabor·com·br      GB em B@N



Mais detalhes sobre a lista de discussão lista