Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola Pessoal tudo beleza !
Estou com o seguinte problema: tenho uma view que traz dados de duas tabelas
e um rules que insere, deleta e altera dados nas duas tabelas tragas por esta view;
Na Inserção e deleção funciona perfeitamente, porém, na alteração é exibido o segunte erro:
Recorde Not Founf or Changed by another user, "O registro não fora encontrado ou modificado por outro usuario", haja vista que esta view é manipulada por um dataset detalhe
de um mestre_ detalhe(dataSet aninhados).
Obs: este erro somente surge qdo a alteração e feita na tabela que os campos primarios refere a tabela mestre, na tabela que não há referência os dados são alterados normalmente.
CREATE OR REPLACE VIEW Viw_compraitens AS SELECT cm.nro_nota, cm.ser_nota, cm.cod_fornec, cm.cod_produto, cm.cod_sittrib, cm.quantidade, cm.vl_unitario, cm.perc_icms, cm.redu_icms, cm.vl_icms, cm.perc_desc, cm.vl_desc, cm.perc_ipi, cm.vl_ipi, cm.vl_total, cm.dt_nota, cm.perc_mar, p.nome AS nomeproduto, p.preco_cust, p.perclliqui, p.preco_vendFROM compitem cmLEFT JOIN acadprod p ON p.codigo = cm.cod_produto;ALTER TABLE Viw_compraitens OWNER TO itasolution;CREATE OR REPLACE RULE Rul_compraitens_atu ASON UPDATE TO Viw_compraitens DO INSTEAD(UPDATE acadprod SET preco_cust = new.preco_cust, perclliqui = new.perclliqui, preco_vend = ((new.vl_unitario * new.perclliqui)/100)+new.vl_unitariowhere codigo = old.cod_produto;UPDATE compitem SET nro_nota = new.nro_nota, ser_nota = new.ser_nota, cod_fornec = new.cod_fornec, cod_produto = new.cod_produto, quantidade = new.quantidade, vl_unitario = new.vl_unitario, perc_icms = new.perc_icms, redu_icms = new.redu_icms, vl_icms = new.vl_icms, perc_desc = new.perc_desc, vl_desc = new.vl_desc, perc_ipi = new.perc_ipi, vl_ipi = new.vl_ipi, vl_total = new.vl_total, dt_nota = new.dt_nota, perc_mar = new.perc_marWHERE nro_nota = old.nro_nota AND ser_nota = old.ser_notaAND cod_fornec = old.cod_fornec AND cod_produto = old.cod_produto;);
se alguem tiver uma ideia melhor, por favor ! me envie.
Desde já grato pela atenção !
Regis
Carregando comentários...