INSERT em tabelas com Indice AutoIncrementavel
Boa Tarde...
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,
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
Curtidas 0
Respostas
Raserafim
19/04/2005
não sei se é a forma de resposta que vc quer mas...
pode saber Codigo do ultimo registro utilizando a função MAX
pode saber Codigo do ultimo registro utilizando a função MAX
select MAX(Codigo) from Cliente
GOSTEI 0
Ticudinho
19/04/2005
Atualmente estou usando este metodo..,,.
Porem, qdo dois usuarios efetuarem compras distitntas e no mesmo momento cadastrarem clientes, nao saberei distinguir o codigo de um INSERT e de outro
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
Anorex
19/04/2005
então:
select max(id) from Cliente where cpf = :cpf
GOSTEI 0
Rjun
19/04/2005
Evitem o uso de CPF para indentificar registros.
GOSTEI 0
Ticudinho
19/04/2005
Bem... ja q nao tenho como trazer o ultimo registro de um INSERT especifico, como posso fazer a concorrencia de trafego na BaseDados ?
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
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
Quadrado
19/04/2005
Eu não sei qual banco de dados está usando, eu uso Access e já fiz uma pesquisa muito grande sobre este tópico (verifique aqi no Forum) e não consegui solução. Atualmente faço assim:
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
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