Fórum INSERT em tabelas com Indice AutoIncrementavel #277997
19/04/2005
0
Vamos ao Codigo
Tabela Cliente
Codigo AutoIncremental
Nome varchar
CPF varchar
Query1.Close;
Query1.SQL.Add(´INSERT INTO DB_Cliente VALUES (:Nome, :CPF)´);
Query1.Params[0].AsString := Nome;
Query1.Params[1].AsString := CPF;
Query1.ExecSQL;
Minha pergunta eh a seguinte... como posso saber qual o Codigo deste ultimo INSERT, ja que o Campo ´Codigo´ eh autoincremental.
Atenciosamente,
Ticudinho
Curtir tópico
+ 0Posts
19/04/2005
Raserafim
pode saber Codigo do ultimo registro utilizando a função MAX
select MAX(Codigo) from Cliente
Gostei + 0
20/04/2005
Ticudinho
Porem, qdo dois usuarios efetuarem compras distitntas e no mesmo momento cadastrarem clientes, nao saberei distinguir o codigo de um INSERT e de outro
Gostei + 0
20/04/2005
Anorex
select max(id) from Cliente where cpf = :cpf
Gostei + 0
20/04/2005
Rjun
Gostei + 0
20/04/2005
Ticudinho
Vamos ao Exemplo:
Tabela COMPRA_PRODUTOS (Chave Externa - CodigoEstoque)
Tabela ESTOQUE_PRODUTOS
Tabela UTILIZACAO_PRODUTOS (Chava Extrena - CodigoEstoque)
atualmente, eu faço um controle de concorrencia via Menu Principal. Se tiver alguem comprando, nao posso utilizar nenhum produto e vice-versa.
Porem se o usuario COMPRADOR esquecer de finalizar a compra, fico com meu sistema ocioso.
Como utilizo o Codigo da Tabela ESTOQUE_PRODUTOS nos dois Casos (COMPRAPRODUTOS e UTILIZACAOPRODUTOS), como fazer com q minha BaseDados fique Consistente?, ja que posso ter no mesmo momento, um usuario comprando e outro fazendo utilizando.
Agradeco muito a Atencao
Gostei + 0
11/05/2005
Quadrado
Tabela1.Insert; Tabela1Campo2.Value := ´Nome´; Tabela1Campo3.Value := 123456; Tabela1.Post; nAutoInc := Tabela1Campo1.Value;
Desfa forma não há risco de duplicação do valor e voce terá o seu número corretamente, mesmo em ambiente multiusuário. Eu uso e funciona.
Boa sorte
Quadrado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)