Fórum INSERT em tabelas com Indice AutoIncrementavel #277997

19/04/2005

0

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,


Ticudinho

Ticudinho

Responder

Posts

19/04/2005

Raserafim

não sei se é a forma de resposta que vc quer mas...
pode saber Codigo do ultimo registro utilizando a função MAX
select MAX(Codigo)
from Cliente



Responder

Gostei + 0

20/04/2005

Ticudinho

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


Responder

Gostei + 0

20/04/2005

Anorex

então:

select max(id) from Cliente where cpf = :cpf



Responder

Gostei + 0

20/04/2005

Rjun

Evitem o uso de CPF para indentificar registros.


Responder

Gostei + 0

20/04/2005

Ticudinho

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


Responder

Gostei + 0

11/05/2005

Quadrado

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:

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar