Converter Stored Procedure de SQL Server para Firebird

Firebird

09/04/2014

Tenho essa Stored Procedure em SQL Server e preciso passar ela pro Firebird.
Alguém poderia me ajudar?

Obrigado

GO
/****** Object: StoredProcedure [dbo].[SP_Animal_DesmamaAutomatica] Script Date: 04/09/2014 16:47:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SP_Animal_DesmamaAutomatica]
@wp_desmamaPelosDias INT, -- 0 = Não | 1 = Sim
@wp_idAnimal INT
AS
BEGIN
SET NOCOUNT ON;

IF (@wp_idAnimal <> 0)
BEGIN

declare
@wi_idmatriz int = 0

-- Pega o ID da Matriz
select @wi_idmatriz = IDMATRIZ from TB_MATRIZ where IDANIMAL = @wp_idAnimal

if @wi_idmatriz <> 0
begin
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(TB_ANIMAL.IDMATRIZ = @wi_idmatriz) and
(TB_ANIMAL.IDSITUACAO = 1) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)

UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(TB_ANIMAL.IDMATRIZ = @wi_idmatriz) and
(TB_ANIMAL.IDSITUACAO = 6) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
END

END

IF (@wp_desmamaPelosDias = 1)
BEGIN
Declare @qtdadeDias int
set @qtdadeDias = 0
set @qtdadeDias = (
select IDADEFINAL from TB_SITUACAO where IDSITUACAO = 1
)
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(DATEDIFF(day, TB_ANIMAL.DTNASCIMENTO, getdate()) > @qtdadeDias) and
(TB_ANIMAL.IDSITUACAO = 1) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)

UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(DATEDIFF(day, TB_ANIMAL.DTNASCIMENTO, getdate()) > @qtdadeDias) and
(TB_ANIMAL.IDSITUACAO = 6) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
END

SET NOCOUNT OFF
END



/****** Object: StoredProcedure [dbo].[SP_AbreSistema] Script Date: 08/10/2009 12:26:19 ******/
SET ANSI_NULLS ON
Jason Mello

Jason Mello

Curtidas 0

Respostas

Thiago Irrazabal

Thiago Irrazabal

09/04/2014

Boa tarde, segue o código da procedure em FireBird.

CREATE OR ALTER PROCEDURE SP_ANIMAL_DESMAMAAUTOMATICA (
    WP_DESMAMAPELOSDIAS INTEGER, -- 0 = NÃO | 1 = SIM
    WP_IDANIMAL INTEGER)
AS
DECLARE VARIABLE WI_IDMATRIZ INTEGER;
DECLARE VARIABLE QTDADEDIAS INTEGER;
BEGIN
IF (WP_IDANIMAL <> 0) THEN
  BEGIN

    WI_IDMATRIZ = 0;

-- PEGA O ID DA MATRIZ
    FOR SELECT IDMATRIZ FROM TB_MATRIZ WHERE IDANIMAL = :WP_IDANIMAL INTO
      :WI_IDMATRIZ DO

    IF (:WI_IDMATRIZ <> 0) THEN
      BEGIN
        UPDATE
        TB_ANIMAL
        SET
        TB_ANIMAL.IDSITUACAO = 2
        WHERE
        (TB_ANIMAL.IDMATRIZ = :WI_IDMATRIZ) AND
        (TB_ANIMAL.IDSITUACAO = 1) AND
        (TB_ANIMAL.IDTIPOSAIDA = 0) AND
        (TB_ANIMAL.EXCLUIDO = 0);
        
        UPDATE
        TB_ANIMAL
        SET
        TB_ANIMAL.IDSITUACAO = 7
        WHERE
        (TB_ANIMAL.IDMATRIZ = :WI_IDMATRIZ) AND
        (TB_ANIMAL.IDSITUACAO = 6) AND
        (TB_ANIMAL.IDTIPOSAIDA = 0) AND
        (TB_ANIMAL.EXCLUIDO = 0);
      END
  END
    
    IF (WP_DESMAMAPELOSDIAS = 1) THEN
      BEGIN
        QTDADEDIAS = 0;

        FOR SELECT IDADEFINAL FROM TB_SITUACAO WHERE IDSITUACAO = 1 INTO
          :QTDADEDIAS DO
          BEGIN
            UPDATE
            TB_ANIMAL
            SET
            TB_ANIMAL.IDSITUACAO = 2
            WHERE
            (DATEDIFF(DAY, TB_ANIMAL.DTNASCIMENTO, CURRENT_DATE) > :QTDADEDIAS) AND
            (TB_ANIMAL.IDSITUACAO = 1) AND
            (TB_ANIMAL.IDTIPOSAIDA = 0) AND
            (TB_ANIMAL.EXCLUIDO = 0);
            
            UPDATE
            TB_ANIMAL
            SET
            TB_ANIMAL.IDSITUACAO = 7
            WHERE
            (DATEDIFF(DAY, TB_ANIMAL.DTNASCIMENTO, CURRENT_DATE) > :QTDADEDIAS) AND
            (TB_ANIMAL.IDSITUACAO = 6) AND
            (TB_ANIMAL.IDTIPOSAIDA = 0) AND
            (TB_ANIMAL.EXCLUIDO = 0);
          END
    END
  SUSPEND;
END;




Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Jason Mello

Jason Mello

09/04/2014

O que tem de errado nesta SP?

BEGIN
    DELETE FROM TB_Adm_Menu;
 
    UPDATE
        TB_ADM_SISTEMA
    SET
        remontamenu = 0;
 
END
GOSTEI 0
Thiago Irrazabal

Thiago Irrazabal

09/04/2014

Não há nada de errado.


Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Jason Mello

Jason Mello

09/04/2014

Preciso de mais uma ajuda nessa SP. Se puder ajudar eu agradeço.

USE [eVet]
GO
/****** Object:  StoredProcedure [dbo].[SP_Peso_Excluir]    Script Date: 04/13/2014 12:48:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Jason Mello
-- Create date: 19/03/2009
-- Description:	Exclusão de peso
-- =============================================
ALTER PROCEDURE [dbo].[SP_Peso_Excluir]
    @wp_idPeso   INT,
    @wp_idAnimal INT
AS
BEGIN
	SET NOCOUNT ON;
	UPDATE
		TB_PESO
	SET
		excluido		= 1
	WHERE
		(idPeso = @wp_idPeso)
		
		
declare
	@UltimoPeso float,
	@UltimoData datetime

	SELECT top 1 
		@UltimoPeso = PESO, 
		@UltimoData = MAX(DTPESAGEM)
	FROM         TB_PESO
		where IDANIMAL = @wp_idAnimal
		  and EXCLUIDO = 0
	GROUP BY PESO	
	ORDER BY PESO DESC

	UPDATE
		TB_ANIMAL
	SET
		PESOATUAL = @UltimoPeso
	WHERE
		IDANIMAL = @wp_idAnimal
		
	SET NOCOUNT OFF
END
GOSTEI 0
POSTAR