[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