inserir em duas tabelas
Tenho duas tabelas, uma se chama cliente e a outra pessoa_fisica, cod_cliente é PK na tabela cliente e FK na tabela pessoa_fisica, quando quero inserir na tabela pessoa_fisica, sou obrigado a primeiro registrar na tabela cliente para gerar o cod_cliente para depois pegar este codigo e gravar na tabela pessoa_fisica.
Problema:
Uso o SQL2000, o campo cod_cliente é do tipo uniqueidentyfier, com a funcao newid() que gera um codigo (GID) e nao um incremental, pergunto, como faco para uma vez feita a insercao na tabela cliente, pegar este codigo gerado ? Nao gostaria de usar store_procedure.
Problema:
Uso o SQL2000, o campo cod_cliente é do tipo uniqueidentyfier, com a funcao newid() que gera um codigo (GID) e nao um incremental, pergunto, como faco para uma vez feita a insercao na tabela cliente, pegar este codigo gerado ? Nao gostaria de usar store_procedure.
Cantisan
Curtidas 0
Respostas
Rfpsatin
30/10/2003
Vc pode usar um trigger (aconselhavel), ou usar alguma gambiarra p/ obter o valor inserido, vai da tua criatividade
GOSTEI 0
Debug
30/10/2003
no evento afterPost da tabela cliente cocolque:
tabelaPessoaFisica.insert;
tabelaPessoaFisica.FieldByName(“CODCLIENTE“).asInteger := tabelaCluiente.FieldByName(“CODCLIENTE“).asInteger;
tabelaPessoaFisica.Post ou ApplyUpdates sei como vc esta gravando os dados no banco.
Um abraēo.
tabelaPessoaFisica.insert;
tabelaPessoaFisica.FieldByName(“CODCLIENTE“).asInteger := tabelaCluiente.FieldByName(“CODCLIENTE“).asInteger;
tabelaPessoaFisica.Post ou ApplyUpdates sei como vc esta gravando os dados no banco.
Um abraēo.
GOSTEI 0
Cantisan
30/10/2003
Eu na verdade execute um db.directsql da vida, mas como é que voce sabe que o tabelaCliente.FieldByName(“CODCLIENTE“).asInteger é o ultimo registro que inseri ?
tabelaPessoaFisica.insert;
tabelaPessoaFisica.FieldByName(“CODCLIENTE“).asInteger := tabelaCluiente.FieldByName(“CODCLIENTE“).asInteger;
tabelaPessoaFisica.insert;
tabelaPessoaFisica.FieldByName(“CODCLIENTE“).asInteger := tabelaCluiente.FieldByName(“CODCLIENTE“).asInteger;
GOSTEI 0