sexta-feira, 25 de janeiro de 2013

Triggers


Olá,

por mais "batido" que pareça o assunto, gostaria de reforçar o conceito de tratamento dos registros inseridos, atualizados ou excluídos através de TRIGGERS.

Assim como no trânsito existe a Direção Defensiva, em desenvolvimento de software existe a Programação Defensiva.

Seguindo este conceito, eu recomendo sempre utilizar o CURSOR nas triggers, desta forma fica garantido o tratamento correto dos registros atualizados.

Então, lá vai o "esqueleto" padrão de uma trigger com o tratamento correto dos registros:

-- Tabela monitorada: Produto
-- Evento monitorado: Insert
CREATE TRIGGER ProdutoInsert ON Produto
WITH ENCRYPTION
FOR INSERT
AS
BEGIN
  -- Declaracao de variaveis e cursor
  DECLARE @Codigo INTEGER
  DECLARE Cursor1 CURSOR
  FOR
    SELECT Codigo
    FROM INSERTED
  -- Abertura do cursor
  OPEN Cursor1
  FETCH NEXT FROM Cursor1 INTO @Codigo
  -- Loop dos registros enquanto nao houver erros
  WHILE @@FETCH_STATUS = 0
  BEGIN
    -- To-do...

    -- Proximo
    FETCH NEXT FROM Cursor1 INTO @Codigo
  END
  -- Fechamento do Cursor
  CLOSE Cursor1
  DEALLOCATE Cursor1
END
go

sexta-feira, 18 de janeiro de 2013

Dicas sobre o Protheus (Totvs)

Segue dicas valiosas sobre o database deste software...

http://4sqlserver.wordpress.com/2012/09/12/dicas-sobre-o-banco-de-dados-do-protheustotvs/

Achei no blog do Marcel Inowe:
http://4sqlserver.wordpress.com/

Tambei naveguei e encontrei dicas interessantes no blog do Leandro Ribeiro:
http://sqlleroy.com/

Abraco !