Fórum Transacao em multicamadas #343534
22/07/2007
0
Estou migrando minha aplicacao para Multicamadas com SOAP, mas estou tendo problemas com transacao.
Alguem sabe como posso fazer para utilizar a rotina abaixo em multicamadas?
Rotina:
procedure TFm_Padrao1.btn_GravarClick(Sender: TObject);
var
mensagemerro : string;
P1, P2 : integer;
TGrava : TTransactionDesc;
begin
TGrava.IsolationLevel := xilREADCOMMITTED;
TGrava.TransactionID := 1;
DM.SQLConnection1.StartTransaction(TGrava);
try
ClienteDst.ApplyUpdates(-1);
DM.SQLConnection1.Commit(TGrava);
mensagem := ´O registro foi incluido ou alterado com sucesso. ´;
Application.MessageBox(PChar(mensagem), ´Informação´, MB_OK+mb_IconInformation);
Executar := habilitaBotoes;
ValorCampo.Text := ´´;
ValorCampo.Enabled := True;
btn_OK.Visible := True;
checkHabilita.Enabled := True;
checkMarca.Enabled := False;
panelFicha.Enabled := False;
if ClienteDst.FieldByName(´Status´).AsString = ´N´ then
LabelStatus.Visible := True
else LabelStatus.Visible := False;
except on E: Exception do
begin
DM.SQLConnection1.Rollback(TGrava);
end;
end;
end;
Desde ja agradeco!
Um abraco!
Marcio Machado
Marmax
Curtir tópico
+ 0Posts
23/07/2007
Brunolspp
Existem algumas limitacoes em SOAP q devem ser levadas em consideracao na hora de usa-lo como container de n-tier.
A primeira é, SOAP nao foi criado pra isso, ele foi concebido para servir como interface entre sistemas, baseado no padrao do W3C, por conta do DataSnap podemos usa-lo assim pra n-tier, mas ele nao tem performance, seguranca e nem escalabilidade, dependendo do nivel de aplicacao q vc vai ter, vai ter junto dor de cabeca e tempo gasto em vao, e depois tera q migrar pra BSS pra obter performance.
Nao digo pra nao usar SOAP, mas usar sabendo das limitacoes e que é muito lento. Eu o utilizo para interfacear com PHP, Java e .NET, mas o que esta por tras dele e um servidor de aplicacao Delphi baseado em DataSnap e BSS.
A melhor opcao com certeza é BSS, no meu link de downloads gratuitos tem varios exemplos, apostilas e videos osbre esses assuntos, em especial de uma olhada nos exemplos do BorCon 2006 e do DDD 8, que implementa interfaces Web com IntraWeb e WebServices com SOAP, com aplicacao correta da tecnologia.
Estes exemplos sao exatamente uma miniatura dos meus sisteams de missao critica e distribuicao geografica, estao construidos de forma didatica, porem usando todos os principais cuidados com relacao a seguranca, escalabilidade, adaptabilidade e velocidade.
Este tipo de sistema e muito mais rapido q SOAP e COM, mais segur e mais facil de evoluir e distribuir.
Mantenho um grupo somente sobre este tipo de desenvolvimento: nddv@yahoogrupos.com.br
E no exemplo do DDD 8, tem a resposta a sua pergunta, tem uma funcao no server, chamada incluipedido, q faz exatamente o que vc precisa da melhor forma. Veja seu uso no cliente win32, no cadastro de pedidos.
Para fazer o download, basta se cadastrar no CodeGear Developers Network(dn.codegear.com/br), o meu link de downloads gratuitos esta abixo da minha assinatura.
Sera um prazer ajudar.
Se precisar tenho todo treinamento on-line e presencial sobre estas tecnologias.
E independente de qualquer coisa, sera um prazer ajudar naquilo que for possivel.
Gostei + 0
23/07/2007
Marmax
Tudo bem?
Primeiramente obrigado por sua atencao e resposta. Realmente notei que a solucao soap para n-tier ficou mais lenta que com BSS, pois tenho varias aplicacoes utilizando BSS. Pensei em utilizar SOAP pois estou tendo problemas de travamento do sistema com BSS e pensei em tentar SOAP para ver se o travamento pararia. Alem disso preciso disponibilizar acesso remoto via internet para meus clientes, e tambem acesso via palm para rede sem fio e pensei que uilizando SOAP seria a melhor solucao. Mas pelo que ja testei e baseado no que vc me enviou ja vi que terei problemas com esta solucao. Estou baixando seu exemplo e verificar as solucoes que poderei implementar. Mais uma vez agradeco a sua atencao. Com certeza poderao surgir mais duvidas, e provavelmente precisarei de mais algumas dicas. Desde ja me ponho a disposicao para ajuda-lo em que for preciso.
Um abraco!
Marcio Machado
P.S. Como faco para entrar no grupo de datasnap?
Gostei + 0
23/07/2007
Brunolspp
Estao 99¬ no exemplo q te indiquei.
e no mais estamos as ordens.
entra no NDDV, é uma boa opcao tb.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)