PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Como criar uma função de inserção de dados no PostGres #27041

03/02/2009

0

Olá, tenho em firebirb a Stored Procedure abaixo, como podem ver ela faz o seguinte.

01 - recebe um parâmetro que a indica o que fazer com a tabela.

Se esse parametro for A - Ela faz um Update na Tabela
I - Ela insere dados na Tabela
D - Ela deleta os dados da tabela

Minha pergunta é a seguinte como eu faço uma como esta no PostGres pois eu ja consegui fazer Funções que Selecionam mas não consegui executar alterações na tabela como preciso.

Aluem pode me ajudar. Obrigado

===============================================

COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;

/* Stored procedures */

CREATE PROCEDURE ´MABATIDAS_PONTO´
(
´ID1´ INTEGER,
´ID2´ DATE,
´ID3´ TIME,
´VI_CODIGO_FUNCIONARIO´ INTEGER,
´VD_DATA´ DATE,
´VD_HORARIO´ TIME,
´VS_ALTERADO´ CHAR(1) CHARACTER SET ISO8859_1,
´TIPO´ VARCHAR(1) CHARACTER SET ISO8859_1
)
AS
BEGIN EXIT; END ^


ALTER PROCEDURE ´MABATIDAS_PONTO´
(
´ID1´ INTEGER,
´ID2´ DATE,
´ID3´ TIME,
´VI_CODIGO_FUNCIONARIO´ INTEGER,
´VD_DATA´ DATE,
´VD_HORARIO´ TIME,
´VS_ALTERADO´ CHAR(1) CHARACTER SET ISO8859_1,
´TIPO´ VARCHAR(1) CHARACTER SET ISO8859_1
)
AS
begin
if (:tipo = ´I´) then
begin
Insert into ´Batidas_Ponto´ (´Codigo_Funcionario´,
´Data´,
´Horario´,
´Alterado´
)
values (:VI_CODIGO_FUNCIONARIO,
:VD_DATA,
:VD_HORARIO,
:VS_ALTERADO
);
End
if (:tipo = ´A´) then
begin
Update ´Batidas_Ponto´ set ´Codigo_Funcionario´=:VI_CODIGO_FUNCIONARIO,
´Data´ =:VD_DATA,
´Horario´ =:VD_HORARIO,
´Alterado´ =:VS_ALTERADO
where (´Codigo_Funcionario´=:ID1) And (´Data´=:ID2) And (´Horario´=:ID3);
end
if (:tipo = ´D´) then
begin
Delete from ´Batidas_Ponto´ where (´Codigo_Funcionario´=:ID1) And (´Data´=:ID2) And (´Horario´=:ID3);
end
end
^

SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;


Amauridebarros

Amauridebarros

Responder

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

Aceitar