[firebase-br] Pegar Código

Tecnobyte Informática temp2 em tecnobyte.com.br
Sex Jul 27 21:53:13 -03 2012


Boa noite Levy

Eu entendi a preocupação do Saulo e ele realmente tem razão em se preocupar 
com isto. Embora possa ser pequena a probabilidade de inserir dois registros 
na mesma tabela em uma fração de segundo, no dia em que isto acontecer 
poderá gerar problema, que dependendo da lógica do sistema pode ser um 
grande problema.

Veja uma hipótese do que pode acontecer:

USUÁRIO1: INSERT INTO Cliente ... (gerou código 500)
USUÁRIO2: INSERT INTO Cliente ... (gerou código 501)
USUÁRIO1: SELECT GEN_ID(Gen_Cliente_Codigo, 0) ... (pegou 501)
USUÁRIO2: SELECT GEN_ID(Gen_Cliente_Codigo, 0) ... (pegou 501)
USUÁRIO1: INSERT INTO ContaReceber... (grava conta a receber para o cliente 
501, mas deveria ser do cliente 500)
USUÁRIO2: INSERT INTO ContaReceber... (grava conta a receber para o cliente 
051, o que é correto para USUÁRIO2)

No final, foram gravadas duas contas a receber para o cliente 501, quando o 
correto seria uma conta a receber para cada cliente.

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br

-----Mensagem Original----- 
From: Levy Moreira
Sent: Friday, July 27, 2012 8:18 PM
To: FireBase
Subject: Re: [firebase-br] Pegar Código

Se logo após o post  você pegar o valor tipo.

TblClientes.Post;
Codigo := FunctionExecutaSQL('select COALESCE(gen_id(genClienteCodigo, 0),
1) from rdb$database');

Não resolve?
Estou usando assim, você já teve problemas com isso ou esta fazendo
uma hipótese?

Se alguém souber uma maneira melhor fico grato.

--
Levy Moreira
______________________________________________
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://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista