Re: [firebase-br] Transação - ClientDataSet
João Yahoo
joao_jma em yahoo.com.br
Sex Ago 31 10:39:35 -03 2007
eu ficaria muito grato em ver um exemplo
----- Original Message -----
From: "claudiney.m.guedes" <claudiney.m.guedes em bol.com.br>
To: "lista" <lista em firebase.com.br>
Sent: Friday, August 31, 2007 10:35 AM
Subject: Re: [firebase-br] Transação - ClientDataSet
Bom dia a todos,
Quando trabalhamos com ClientDataSet não precisamos trabalhar com transação,
pois o DataSetProvider fica responsavel por esta tarefa.
Qualquer dúvida referente a utilização eu posso disponibilizar um exemplo...
---------- Início da mensagem original -----------
De: lista-bounces em firebase.com.br
Para: "FireBase" lista em firebase.com.br
Cc:
Data: Fri, 31 Aug 2007 10:09:02 -0300 (ART)
Assunto: Re: [firebase-br] Transação - ClientDataSet
> Neste caso faça assim. Adapte as suas necessidades.
>
> transacao.TransactionID := 1;
> transacao.IsolationLevel := xilREADCOMMITTED;
> if not DM.Conexao.InTransaction then
> DM.Conexao.StartTransaction(Transacao);
> with DM.qryManut2 do
> begin
> sql.clear;
> if btIncAlt.caption = 'Incluir' then
> begin
> sql.add('INSERT INTO PRODUCAO (DATA, CODCARTAO, VALORFACE,
> QTDCARTOES, LIXO)');
> sql.add(' VALUES (:pdata, :pcodcartao, :pvalorface,
> :pqtdcartoes, :plixo)');
> end
> else
> begin
> sql.add('UPDATE PRODUCAO');
> sql.add(' SET DATA = :pdata,');
> sql.add(' CODCARTAO = :pcodcartao,');
> sql.add(' VALORFACE = :pvalorface,');
> sql.add(' QTDCARTOES = :pqtdcartoes,');
> sql.add(' LIXO = :plixo');
> sql.add(' WHERE CODCARTAO = :pcodcartao');
> sql.add(' AND VALORFACE = :pvalorface');
> end;
> parambyname('pcodcartao').asinteger :=
> strtoint(trim(RightStr(cbTpCartao.items[cbTpCartao.itemindex],2)));
> parambyname('pvalorface').Asfloat :=
> strtofloat(edtValorFace.text);
> parambyname('pdata').AsDate := strtodate(meData.text);
> parambyname('pqtdcartoes').asinteger :=
> strtoint(trim(meQuant.text));
> parambyname('plixo').asinteger :=
> strtoint(trim(meLixo.text));
> ExecSQL;
> end;
> with DM.qryManut2 do
> begin
> sql.clear;
> sql.add('UPDATE ESTOQUE');
> sql.add(' SET QTDCARTOES = QTDCARTOES - :pqtdcartoes');
> sql.add(' WHERE CODCARTAO = :pcodcartao');
> sql.add(' AND VALORFACE = :pvalorface');
> parambyname('pcodcartao').asinteger :=
> strtoint(trim(RightStr(cbTpCartao.items[cbTpCartao.itemindex],2)));
> parambyname('pvalorface').asfloat :=
> strtofloat(trim(edtValorFace.text));
> parambyname('pqtdcartoes').asinteger :=
> (strtoint(trim(meQuant.text)) + strtoint(trim(meLixo.text))) - (quant_ant
> + qtdlixo_ant);
> ExecSql;
> end;
> try
> DM.Conexao.Commit(transacao);
> except
> DM.Conexao.RollBack(transacao);
> end;
>
> Espero ter ajudado.
>
> Felipe Aron <felipearon em gmail.com> escreveu:
> Estou usando ClientDataSet na minha aplicação e li um artigo no FireBase
> a
> respeito: http://www.firebase.com.br/fb/artigo.php?id=156
> Porém no artigo ele informa para cada tabela usar uma transação....
> Mas e no caso de vendas ?? TEnho que gravar o cabeçalho de vendas + Itens.
> Seguindo a lógica do artigo, posso commitar o cabeçalho e dar erro ao
> gravar
> os itens.... nesse caso não é melhor usar apenas 1 transação ???
>
> Outra pergunta: como fazer para commitar os dados da venda e itens
> (ClientDataSet) somente quando terminar TODO o processo ??
>
>
> --
> Com a força aprenda a suavidade. Através da suavidade a força prevalecerá!
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> Flickr agora em português. Você clica, todo mundo vê. Saiba mais.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
_______________________________________________________
Yahoo! Mail - Sempre a melhor opção para você!
Experimente já e veja as novidades.
http://br.yahoo.com/mailbeta/tudonovo/
Mais detalhes sobre a lista de discussão lista