[firebase-br] Transaction

Fausto fausto.s.a em uol.com.br
Seg Dez 20 10:06:25 -03 2004


Porque vc não utiliza a função gen_id com o parametro 1, apenas na inclusão 
do primeiro lancamento, e depois com o parametro 0, no segundo lancamento ai 
ele retorna apenas o nº atual do generator.
Vc vai ter apenas que especificar no código se a inclusão do novo lancamento 
é para a mesma empresa ex:
crie uma variavel global
 emp:string
no evento before insert verifique se o conteudo da váriavel é vazio.
se for vazio ou se a empresa for diferente
   nrlancto := gen_id(generator,1)
se nao for vazio e a empresa for igual
  nrlancto := gen_id(generator,0)
Esta meio "crú", mas creio que a solução seria por ai.

Fausto


----- Original Message ----- 
From: "Marlon" <marlon em multi-informatica.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, December 20, 2004 9:50 AM
Subject: Re: [firebase-br] Transaction


É que o programa que estou fazendo é com multiplas empresas e a chave
primaria desta tabela é o número do lançamento e código da empresa.
Ssem usar generators ficaria assim:
Lançamento   Empresa
1                   001
2                   001
1                   002
2                   002

se usa-se generators ficaria assim:
Lançamento Empresa
1                  001
2                  001
3                  002
4                  002

A empresa 002 não teria os lançamentos 1 e 2 se utiliza-se generators.


emerson carrard escreveu:

>porqu nao pode usar generators
>
>"Josauro S.J." <josauro em casasoft.inf.br> wrote:Use os generator
>
>Josauro S.J.
>Diretor
>josauro em casasoft.inf.br
>----- Original Message ----- 
>From: Marlon To: FireBase Sent: Monday, December 20, 2004 8:30 AM
>Subject: [firebase-br] Transaction
>
>
>Olá colegas,
>
>Mais uma vez venho pedir a ajuda de vocês.
>É o seguinte tenho uma rotina no sistema que gera lançamentos 
>automáticamente, quando está lançando em dois computadores ao mesmo tempo 
>acontece o seguinte erro:
>Lock conflict on wait transaction deatlock. Update conflicts with 
>concorrent update.
>
>Na tabela de lançamento tem uma trigger que chama uma stored procedure que 
>pega o ultimo número do lançamento e soma mais um (um auto-incremento).
>
>A minha transaction ta configurada para read_committed, rec_version e 
>nowait.
>
>Fiz uma aplicação teste utilizando generetors, dai não acontece o erro. So 
>que não posso utilizar generators, será que existe alguma configuração no 
>banco ou na transaction para resolver este problema?
>
>Desde já agradeço a atenção,
>Marlon
>
>
>
>



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.6.0 - Release Date: 17/12/2004


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.6.0 - Release Date: 17/12/2004




-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.6.0 - Release Date: 17/12/2004





Mais detalhes sobre a lista de discussão lista