dbo.DR_CONSTANTE

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@Constante varchar -1
@Country_code varchar 2
@Cliente int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE  dbo.DR_CONSTANTE
@Constante varchar(MAX), @Country_code varchar(2), @Cliente int

AS

BEGIN
 SET NOCOUNT ON;

 DECLARE @qConstante varchar(50)
 DECLARE @qcountry_code varchar(2)
 DECLARE @qcliente varchar(10)
 DECLARE @qtexto_idioma_1 varchar(8000)
 DECLARE @qtexto_idioma_2 varchar(8000)
 DECLARE @qtexto_idioma_3 varchar(8000)
 DECLARE @qverificado tinyint
 DECLARE @qrows int = 0
 DECLARE @SQLString nvarchar(4000)
 DECLARE @trimConstante varchar(50)

 /*
  SET @SQLString = 'DECLARE GDL_Constantes Cursor FOR SELECT ' + @qConstante + ' = constante, ' + @qcountry_code + '= country_code '
  SET @SQLString = @SQLString + @qcliente + '= cliente, ' + @qtexto_idioma_1 + '= texto_idioma_1 '
  SET @SQLString = @SQLString + @qtexto_idioma_2 + '= texto_idioma_2, ' + @qtexto_idioma_3 +' = texto_idioma_3 '
  SET @SQLString = @SQLString + 'FROM gdl_constantes WHERE constante = ''' + @Constante + '''' 
  */

 

 set @trimConstante = dbo.fnRemovePatternFromString(upper(@Constante), '%[^A-Za-z0-9]%')
 --set @trimConstante = substring(@Constante,0,50)
 set @trimConstante = substring(@trimConstante,0,50)

 SET @SQLString = 'DECLARE GDL_Constantes Cursor FOR SELECT constante, country_code, cliente, texto_idioma_1,
  texto_idioma_2, texto_idioma_3, verificado FROM gdl_constantes WHERE constante = '''
 + @trimConstante + '''' 
 

 IF EXISTS (SELECT constante, country_code, cliente, texto_idioma_1,
   texto_idioma_2, texto_idioma_3, verificado FROM gdl_constantes
 WHERE constante = @trimConstante
 AND country_code = @Country_code
 AND cliente = @Cliente)

  BEGIN
   SET @SQLString = @SQLString + ' AND country_code = ''' + @Country_code + ''''
   SET @SQLString = @SQLString + ' AND cliente = ' + CONVERT(varchar(10),@Cliente)
  END
 ELSE
  BEGIN
   IF EXISTS (SELECT constante, country_code, cliente, texto_idioma_1,
   texto_idioma_2, texto_idioma_3, verificado FROM gdl_constantes
   WHERE constante = @trimConstante
   AND country_code = @Country_code
   AND cliente = 0)

    BEGIN
     SET @SQLString = @SQLString + ' AND country_code = ''' + @Country_code + '''' + ' AND cliente = 0'
    END
   ELSE
    BEGIN
     SET @SQLString = @SQLString + ' AND country_code = ''' + 'XX' + '''' + ' AND cliente = 0'
    END
  END

  /*
   select @SQLString
   */


  exec sp_executesql @SQLString
  
  Open GDL_Constantes

   Fetch NEXT FROM GDL_Constantes INTO @qConstante, @qcountry_code, @qcliente,@qtexto_idioma_1,@qtexto_idioma_2,@qtexto_idioma_3,@qverificado

   While (@@FETCH_STATUS <> -1)
   BEGIN
    /* si las variables son null inserto la constante para country XX y cliente 0 */
    set @qrows = @qrows + 1
    FETCH NEXT FROM GDL_Constantes INTO @qConstante, @qcountry_code, @qcliente,@qtexto_idioma_1,@qtexto_idioma_2,@qtexto_idioma_3,@qverificado
   END

  CLOSE GDL_Constantes
 DEALLOCATE GDL_Constantes
 

 if (@qrows = 0) 
  BEGIN
   INSERT INTO gdl_constantes(constante,country_code,cliente,texto_idioma_1,texto_idioma_2,texto_idioma_3,verificado)
   VALUES (@trimConstante, 'XX',0,@Constante,@Constante,@Constante,0) 

   SET @qConstante = @trimConstante
   SET @qcountry_code = 'XX'
   SET @qcliente= 0
   SET @qtexto_idioma_1 =  @Constante
   SET @qtexto_idioma_2 =  @Constante
   SET @qtexto_idioma_3 =  @Constante
   SET @qverificado =  0
  END
  


SELECT @qConstante as constante, @qcountry_code as country_code,@qcliente as cliente, @qtexto_idioma_1 as texto_idioma_1,@qtexto_idioma_2 as texto_idioma_2, @qtexto_idioma_3 as texto_idioma_3 , @qverificado as verificado
--@SQLString AS SQLString, 
-- SELECT @Constante as constante, 'XX' as country_code,0 as cliente, @Constante as texto_idioma_1,@Constante as texto_idioma_2, @Constante as texto_idioma_3 


END

GO

Used By

No items found