Cod. Automatico no Firebird DBX Mestre-detalhe
Olá pessoal...
Estou com um problema, acredito que seja relativamente simples...
Na minha aplicação estou utilizando dbexpress e ClientDataSet pra conectar ao FireBird.
Para a geração da chave primária, código auto incremento, uso uma trigger que guarda o valor do ultimo cadastro e no Before insert da tabela pego o valor da generator e incremento 1...
Estou com o seguinte problema, a tabela que uso é do tipo mestre detalhe, dai na minha aplicação o codigo só será gerado quando da o post na tabela, só que se eu entro no grid que é o detalhe o sistema gera erro, devido ao codigo que ainda não foi gerado logicamente porque ainda não dei post na tabela...
Como é que é tratado esse problema?
Agradeço a ajuda de todos....
Estou com um problema, acredito que seja relativamente simples...
Na minha aplicação estou utilizando dbexpress e ClientDataSet pra conectar ao FireBird.
Para a geração da chave primária, código auto incremento, uso uma trigger que guarda o valor do ultimo cadastro e no Before insert da tabela pego o valor da generator e incremento 1...
Estou com o seguinte problema, a tabela que uso é do tipo mestre detalhe, dai na minha aplicação o codigo só será gerado quando da o post na tabela, só que se eu entro no grid que é o detalhe o sistema gera erro, devido ao codigo que ainda não foi gerado logicamente porque ainda não dei post na tabela...
Como é que é tratado esse problema?
Agradeço a ajuda de todos....
Gardel
Curtidas 0
Respostas
Titanius
19/04/2006
Amigo, como todo mestre-detalhes, o filho precisa saber o codigo do pai antes de gravar, e este deve estar gravado anteriormente... então o passo é simples, basta vc pegar o codigo do pai antes, e salva-lo antes do filho?
Provalvemente vc esta usando Generator para isso.. bem, ao inves da trigger, vc devera usar um sql normal na sua aplicacao pra trazer este codigo... insira o seguinte codigo:
onde:
NOME_GENERATOR = Nome do seu generator
INC = Valor a ser incrementado, normalmente 1
pronto, ele ira trazer o codigo... ai é só vc gravar ele e pronto.
Provalvemente vc esta usando Generator para isso.. bem, ao inves da trigger, vc devera usar um sql normal na sua aplicacao pra trazer este codigo... insira o seguinte codigo:
select gen_id(NOME_GENERATOR, INC) from rdb$database
onde:
NOME_GENERATOR = Nome do seu generator
INC = Valor a ser incrementado, normalmente 1
pronto, ele ira trazer o codigo... ai é só vc gravar ele e pronto.
GOSTEI 0
Paullsoftware
19/04/2006
dê um post na tabela Master antes de iniciar as operações com o detalhe
lembre-se de verificar o estado atual de sua tabela master..
lembre-se de verificar o estado atual de sua tabela master..
GOSTEI 0