Problemão com tabelas em master/detail

Firebird

14/09/2004

olá pessoal, estou com um problemão vou explicar bem detalhado.

tenho uma tabela no ib/fb que armezena o cabeçalho da nota fiscal e outra que armazena os itens da nota fiscal, existe no banco de dados uma chave estrangeira que faz com que ao deleta o cabeçalho da nota ele deleta os itens da nota na tabela de itens, existe também 3 triggers, um é acionado quando se adiciona um item na tabela de itens, ele altera no cad.produtos o valor de estoque geral o preco de custo e calcula o preco de venda, o 2º trigger faz o mesmo quando se altera a quantidade ou valor de custo, e o 3º é quando deleta o item ele subtrai no cad.produtos o vr. total de estoque daquele produto.(beleza)

no código fonte (projeto) estou utilizando 2 clientdatasets e 1 datasetprovider para cada clientdataset e 1 ibquery para cada datasetprovider e os clientdatasets estão ligados em master/detail atraves da propriedade mastersource do cds detail.(beleza)


o problema é quando o sistema está em execução e eu vou adicionar um 1 item da ibquery que me trraz o resultado da pesquisa para o clientdataset detail ele demora em torno de 30 segundos para adiciona-lo completamente e me liberar para inserir outro produto.

eu achei que fosse os triggers ou chave estrangeira porque tinha 3000 produtos (que não é tanto assim) eu removi os triggers e a chave estrangeira mas ficou no mesmo, tentei o ibclientdataset e ficou o mesmo, tentei o ibdataset e ficou o mesmo.

essa lentidão só acontece nessa relação master/detail porque os cadastros e contas á pagar que não usa master/detail está normal.

por favor alguém sabe me dizer o que acontece?


agradeço desde já.


Tap_pedroso

Tap_pedroso

Curtidas 0

Respostas

Tap_pedroso

Tap_pedroso

14/09/2004

resolvi o problema eu estava usando ibtable para cadastro de produtos e quando fiz um campo (new field) lookup no clientdataset ele estava pegando da ibtable e estava demorando eu troquei a ibtable pelo ibdataset e a velocidade melhorou bastante.


GOSTEI 0
POSTAR