inserir em duas tabelas

Delphi

30/10/2003

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.


Cantisan

Cantisan

Curtidas 0

Respostas

Rfpsatin

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

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.


GOSTEI 0
Cantisan

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;


GOSTEI 0
POSTAR