locked
Strored Procedure RRS feed

  • Pergunta

  • Olá Senhores,

     

    Tenho a seguinte stored:

     

    ALTER    procedure dbo.sp_IncluirCtrTerceiro     
         
     @Login varchar (50),     
     @numAdv_codigo int,      
     @numAdv_contrato varchar(50),     
     @vchAdv_OriCon varchar (50) ,     
     @vchAdv_GesDir int,     
     @vchAdv_GesGer int,     
     @vchAdv_GesAg int ,     
     @vchAdv_Jurisdicao varchar(50),      
     @vchAdv_Obj varchar (50) = null    ,  
     @vchAdv_DatIni datetime = '17530101',     
     @vchAdv_DatFim datetime = '17530101',      
     @statusctr varchar (50)  
          
    as     
         
    set nocount on     
    declare  @dtmAdv_datuma datetime      ,@vchAdv_Sta varchar (50)
          
    if  not exists  (select * from tbAdvogado where numAdv_codigo=@numAdv_codigo and numAdv_contrato=@numAdv_contrato)     
    begin     
     BEGIN TRAN     
     --print 'ok'     
     insert into tbAdvogado(numAdv_codigo,numAdv_contrato,vchAdv_OriCon,vchAdv_GesDir,vchAdv_GesGer,vchAdv_GesAg,vchAdv_DatIni,vchAdv_DatFim,vchAdv_Obj,vchAdv_Sta,dtmAdv_datuma,vchAdv_Jurisdicao,statusctr)     
     values(@numAdv_codigo,@numAdv_contrato,@vchAdv_OriCon,@vchAdv_GesDir,@vchAdv_GesGer,@vchAdv_GesAg,@vchAdv_DatIni,@vchAdv_DatFim,@vchAdv_Obj,@vchAdv_Sta,@dtmAdv_datuma,@vchAdv_Jurisdicao,@statusctr)     
     if @@error=0           
     begin      
      insert into tbMov_Advogado(numAdv_codigo,numAdv_contrato,vchAdv_OriCon,vchAdv_GesDir,vchAdv_GesGer,vchAdv_GesAg,vchAdv_DatIni,vchAdv_DatFim,vchAdv_Obj,vchAdv_Sta,vchAdv_Login,dtmAdv_datuma,vchAdv_Jurisdicao,statusctr)     
      values(@numAdv_codigo,@numAdv_contrato,@vchAdv_OriCon,@vchAdv_GesDir,@vchAdv_GesGer,@vchAdv_GesAg,@vchAdv_DatIni,@vchAdv_DatFim,@vchAdv_Obj,@vchAdv_Sta,@login,@dtmAdv_datuma,@vchAdv_Jurisdicao,@statusctr)     
      if @@error=0           
      begin      
       commit tran     
      end      
      else     
      begin     
       rollback     
      end     
     end     
     else     
     begin     
      rollback     
     end     
    end     
    else     
    begin     
        BEGIN TRAN     
         update  tbAdvogado     
          set  vchAdv_OriCon=@vchAdv_OriCon     
     ,vchAdv_GesDir=@vchAdv_GesDir     
     ,vchAdv_GesGer=@vchAdv_GesGer     
     ,vchAdv_GesAg=@vchAdv_GesAg     
     ,vchAdv_DatIni=@vchAdv_DatIni     
     ,vchAdv_DatFim=@vchAdv_DatFim     
     ,vchAdv_Obj=@vchAdv_Obj     
     ,vchAdv_Sta=@vchAdv_Sta     
     ,dtmAdv_datuma=@dtmAdv_datuma     
     ,vchAdv_Jurisdicao  =@vchAdv_Jurisdicao
     ,statusctr=@statusctr         
     where numAdv_codigo=@numAdv_codigo and      
     numAdv_contrato=@numAdv_contrato     
     if @@error=0           
     begin      
      insert into tbMov_Advogado(numAdv_codigo,numAdv_contrato,vchAdv_OriCon,vchAdv_GesDir,vchAdv_GesGer,vchAdv_GesAg,vchAdv_DatIni,vchAdv_DatFim,vchAdv_Obj,vchAdv_Sta,vchAdv_Login,dtmAdv_datuma,vchAdv_Jurisdicao,statusctr)     
      values(@numAdv_codigo,@numAdv_contrato,@vchAdv_OriCon,@vchAdv_GesDir,@vchAdv_GesGer,@vchAdv_GesAg,@vchAdv_DatIni,@vchAdv_DatFim,@vchAdv_Obj,@vchAdv_Sta,@login,@dtmAdv_datuma,@vchAdv_Jurisdicao,@statusctr)     
      if @@error=0           
      begin      
       commit tran     
      end      
      else     
      begin     
       rollback     
      end     
     end     
     else     
     begin     
      rollback     
     end     
    end      
         
    PERGUNTA: tem como eu colocar uma condicional, se a  vchAdv_DatFim < getdate() , o campo statusctr recebe "CONTRATO ATIVO," caso contrário recebe "CONTRATO INATIVO", já pesquisei, mexi no código e nada, tem alguém que possa a me ajudar?

     

    Grato,

     

    Augusto

    quinta-feira, 19 de julho de 2007 18:55

Respostas

  • Olá Augusto,

     

    Seria isso ?

     

    IF @vchAdv_DatFim < getdate()

        SET @statusctr= 'CONTRATO ATIVO'

    ELSE

       SET @statusctr='CONTRATO INATIVO'

     

     

    um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

    PS: Foi útil para vc? Então marque o post como útil!!


     

    sexta-feira, 20 de julho de 2007 01:36
    Moderador
  •  ou se for no select como retorno

     

     Select Case When @vchAdv_DatFim < getdate() then 'contrato ativo' else 'contrato inativo' end .... from ....

     

    Abs;

    sexta-feira, 20 de julho de 2007 10:31
  • Augusto,

     

    A questão é analisar qual a melhor forma, tendo como base os exemplos do Nilton e do Marcelo.

     

     

    sexta-feira, 20 de julho de 2007 19:34
    Moderador

Todas as Respostas

  • Olá Augusto,

     

    Seria isso ?

     

    IF @vchAdv_DatFim < getdate()

        SET @statusctr= 'CONTRATO ATIVO'

    ELSE

       SET @statusctr='CONTRATO INATIVO'

     

     

    um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

    PS: Foi útil para vc? Então marque o post como útil!!


     

    sexta-feira, 20 de julho de 2007 01:36
    Moderador
  •  ou se for no select como retorno

     

     Select Case When @vchAdv_DatFim < getdate() then 'contrato ativo' else 'contrato inativo' end .... from ....

     

    Abs;

    sexta-feira, 20 de julho de 2007 10:31
  • Augusto,

     

    A questão é analisar qual a melhor forma, tendo como base os exemplos do Nilton e do Marcelo.

     

     

    sexta-feira, 20 de julho de 2007 19:34
    Moderador