Fórum Deletar dados com segurança usando Stored Procedures! #43665

12/04/2004

0

olá amigos...
tenho a seguinte dúvida:

gostaria de, ao excluir um registro, esse mesmo fosse gravado em uma outra tabela (TABLE_EXCLUIDOS) como forma de backup, não para restauração, e sim para consulta.

O problema é o seguinte:

- Para cada produto acabado, eu tenho N materias-primas.
- A exclusão é feita pela matéria-prima e não pelo produto.

Como devo prosseguir para ao deletar um produto, e este ser gravado na tabela de excluídos?

Exemplo:

[b:49f0c10a98]PRODUTO M.P 1 M.P 2 M.P N
PK-019 999 888 NNN[/b:49f0c10a98]

quando o usuário entrar com o codigo da matéria prima, a procedure varre as tabelas pré-definidas comparando a matéria-prima, na ocorrência da mesma, ele faz o backup na tabela de excluidos e deleta o produto da tabela original...

entenderam ou eu compliquei tudo?

Quem puder me ajudar, serei eternamente grato!

Uso D7 e IBX!


Anarchybra

Anarchybra

Responder

Posts

13/04/2004

Anarchybra

esta é minha linha de raciocínio... sei que está errado, mas acho que é por aqui:

[b:b2f9d42bcf]CREATE PROCEDURE SP_DELETE_BACKUP_FORMULAS
(
COD_PRODUTO VARCHAR(10)
)
AS

DECLARE VARIABLE COD_FORMULA VARCHAR(10); /* armazena a fórmula excluída */
DECLARE VARIABLE DATA TIMESTAMP; /* armazena a data de exclusão */

BEGIN
WHILE (COMP1.COD_PRODUTO = :COD_PRODUTO) DO
BEGIN
FOR SELECT COMP1.COD_PRODUTO, COMP2.COD_PRODUTO
FROM COMPOSICAO COMP1, COMP_TEMP COMP2
WHERE (COMP1.COD_PRODUTO = :COD_PRODUTO)
INTO :COD_FORMULA, :DATA DO
BEGIN
INSERT INTO BACKUP_EXCLUIDOS ( COD_FORMULA, DATA)
VALUES (:COD_FORMULA, :DATA);
DELETE FROM COMPOSICAO WHERE COD_PRODUTO = :COD_PRODUTO
DELETE FROM COMP_TEMP WHERE COD_PRODUTO = :COD_PRODUTO
SUSPEND;
END
END


END

^[/b:b2f9d42bcf]

END

^[/b]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar