[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