Usuário com melhor resposta
Auto Incremento

Pergunta
-
Olá amigos;
Uma dúvida sobre auto-incremento...
tenho um while dentro de outro while fazendo insert em um master-detail..... (ex: pedido / Item)
ou seja:
qdo vou inserir o item o banco que retorna um erros que não tem o id_pedido, pois, não pego o identy do pedido...
Como posso identificar o auto-incremento do pedido para inserir no item?
Desde já agradeço
Respostas
Todas as Respostas
-
-
na verdade citei um exemplo de pedido/item (master-detail) como exemplo.
faço a leitura de um arquivo texto e incluo em duas tabelas(master-detail) tab1 = master, tab2 = detail
while not eof do
begin
insiro no tab1 e post(tab1 com chave identity)
insiro no tab2 (aqui preciso do codigo identity do master)
****qdo vou inserir preciso do ID
end;
Percebi, sou novo no mssql, que posso pegar o ultimo id inserido na tabela usando SCOPE_IDENTITY . Como usaria esta função. No próprio insert into ou teria que usar um select depois do insert? Obrigado
- Editado Sorrilha, Ale segunda-feira, 26 de novembro de 2018 19:56
-
-
-
procedure
var
CHAVE_PROD : integer;
INSERT INTO producao(id_cor, id_seg, id_ramo, id_sub_ramo, id_ci, id_prep, data_emissao, id_tipo, cod_producao,
n_proposta,
vig_inicial,
vig_final) VALUES('12', '56','1', '1', '11', '51', +convert(datetime, '27/11/2018', 103), '1', '20181127163337-0012-GFXYR',
'40199888',
convert(datetime, '24/09/2018', 103),
convert(datetime, '24/09/2019', 103))
SET CHAVE_PROD = SCOPE_IDENTITY();assim que que estou pegando o identity pra inserir no detais. Me mostra um erro.
-
fiz isso tbém depois do insert
qGen := TFDQuery.Create(Self);
qGen.Close;
qGen.Connection := dtmConexao.FDConnection1;
qGen.SQL.Add('SELECT IDENT_CURRENT(id_PROD) from prod');
qGen.Open;
showmessage(qGen.Fields[0].AsString);
qGen.Close;
qGen := nil;me retorna vazio a string/integer
Obrigado
-
-