Re: [firebase-br] Aplicação Multicamadas/Dbexpres s
Kléber Caneva
kdcc em terra.com.br
Seg Set 27 13:51:45 -03 2004
Desculpe, não tinha atentado ao fato de ser uma aplicação multicamadas..
nesse caso a solução é o uso de trigger.. pois esse tipo de processamento
não deve ser feito no cliente.
[]´s
Kléber Caneva
----- Original Message -----
From: "Ederson Selvati" <asaederson em asaeggs.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, September 27, 2004 1:31 PM
Subject: Re: [firebase-br] Aplicação Multicamadas/Dbexpres s
Desculpe minha ignorância, mas tenho outra dúvida, como fazer o controle da
transação explicitamente na aplicação cliente, visto q o sqlconnection
encontra-se na aplicação servidora ?
Ederson
Digimaq Registradoras e Sistemas Ltda.
----- Original Message -----
From: "Kléber Caneva" <kdcc em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, September 27, 2004 1:13 PM
Subject: Re: [firebase-br] Aplicação Multicamadas/Dbexpres s
> Vc pode optar por fazer uma Transação Explicita usando
> Connection.StartTransaction (TD);
>
> ou usar Triggers, que ao meu ver seria o mais correto.
>
> []´s
>
> Kléber Caneva
>
>
> ----- Original Message -----
> From: "Ederson Selvati" <asaederson em asaeggs.com.br>
> To: <Lista em firebase.com.br>
> Sent: Monday, September 27, 2004 12:48 PM
> Subject: [firebase-br] Aplicação Multicamadas/Dbexpres s
>
>
> Boa tarde a todos,
>
> tenho visto nos ultimos dias alguns assuntos a respeito do clientdataset e
> nesteddataset com dbexpress.
>
>
> Com nesteddatasets todas as tabelas envolvidas no relacionamento sao
> gravadas na mesma transacao, ou seja, caso ocorra algum erro no conjunto
> de
> datasets, nada será gravado ou tudo será gravado após as devidas
> correções.
>
>
> Mas tenho esbarrado em um problema, vejam o seguinte cenário:
>
> em um sistema de emissao de notas, tenho a tabela onde é armazenado as
> informações da nota, tais como numero, cliente, total da nota e outros.
> e uma outra tabela de itens da nota, q armazena as informacoes referentes
> aos produtos da nota.
>
> faco todas as devidas insercoes nas tabelas e dou um applyupdates(0) na
> tabela de informaçoes de notas, como é um relacionamento mestre detalhe a
> tabela de itens automaticamente tem os produtos gravados na mesma
> transacao.
>
>
> só q depois q dou um applyupdates na tabela de cabecalho de nota, eu teria
> q
> incrementar o nº da nota fiscal em uma outra tabela, informar a ultima
> compra do cliente eu uma outra, como proceder, visto q estas outras
> tabelas
> nao terao condicao de entrar no relaciomento mestre detalhe e utilizar a
> mesma transação ?
>
>
> explanando o cenario
>
> cdsnotas.applyupdates(0);//aqui termina a transação do conjunto mestre
> detalhe das notas fiscais
>
> cdsauxiliar.close;
> cdsauxiliar.commandtext:='update CLIENTES set ultimacompra=:data where
> id_cliente=:cliente';
>
cdsauxiliar.params.parambyname('data').asdatetime:=cdsnotas.fieldbyname('emi
> ssao').asdatetime;
>
cdsauxiliar.params.parambyname('cliente').asinteger:=cdsnotas.fieldbyname('c
> liente').asinteger;
> cdsauxiliar.execute;
>
> cdsauxiliar.close;
> cdsauxiliar.commandtext:='update config set nota=nota+1';
> cdsauxiliar.execute;
>
> e se em alguma destas transações acima eu obter um erro ? Seja na hora de
> atualizar a tabela de clientes ou a tabela de configurações onde
> incremento
> o numero de nota ?
>
> lembrando q em uma aplicação multicamadas usando SOAP, controlar
> explicitamente as transações ficaria um pouco complicado, nem sei se
> existe
> alguma forma para isso, visto q o provider ao qual o clientdataset se
> encontra ligado é responsável por este controle.
>
> Uma possível solução seria criar triggers para efetuar estas operações ?
>
>
> Desculpe fugir um pouco do contexto do fórum, mas não obtive muito sucesso
> a
> respeito deste assunto.
>
>
>
>
> Ederson Selvati
> Digimaq Registradoras e Sistemas Ltda.
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br)
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: VirusScan / Atualizado em 22/09/2004 / Versão: 1.5.2
> Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/
>
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
>
http://www.terra.com.br/centralunificada/emailprotegido/imail/imail.cgi?+_u=kdcc&_l=1,1096300280.356588.24282.conventos.terra.com.br,5518,Des15,Des15
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br)
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: VirusScan / Atualizado em 22/09/2004 / Versão: 1.5.2
Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/
E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://www.terra.com.br/centralunificada/emailprotegido/imail/imail.cgi?+_u=kdcc&_l=1096302878.106111.31304.chui.terra.com.br
Mais detalhes sobre a lista de discussão lista