dbo.OlahFindViewType10

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

True

Execute As
Assembly

Parameters

Name Data Type Length Description
@PATH varchar 10
@FIELD_TABLE varchar 250
@TYPE int 4
@BYPASS_LIKE bit 1
@x_cr bit 1
@x_lr bit 1
@x_ll bit 1
@x_ft varchar 255
@x_ft2 varchar 255
@x_cn int 4
@RESULT1 varchar 1000
@RESULT2 varchar 1000

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.OlahFindViewType10
@PATH varchar(10),
@FIELD_TABLE varchar(250) ,
@TYPE int , --1= STRING ,2=ANGKA , 3=DATETIME
@BYPASS_LIKE bit,
@x_cr bit,
@x_lr bit,
@x_ll bit,
@x_ft varchar(255),
@x_ft2 varchar(255) ,
@x_cn int,
@RESULT1 varchar(1000) output,
@RESULT2 varchar(1000) output 
WITH 
encryption,
EXECUTE AS CALLER
AS
BEGIN
SET nocount on
 SET @RESULT1=''
 SET @RESULT2=''

DECLARE @SQLString nvarchar(MAX);
DECLARE @ParmDefinition nvarchar(MAX);
IF @x_cr =1
BEGIN
 IF @TYPE=3 --DATE
 BEGIN
 --CN //1:equal , 2:< , 3:> , 4:between
   DECLARE @date_star datetime
   DECLARE @date_end datetime
 
   IF (CHARINDEX('/', @x_ft)=5)
   BEGIN
    SET @date_star = convert(datetime,left(@x_ft,10), 111)
   end
   ELSE IF (CHARINDEX('/', @x_ft)=3)
   BEGIN
    SET @date_star = convert(datetime,left(@x_ft,10), 103)
   end
   ELSE IF (CHARINDEX('-', @x_ft)=5)
   BEGIN
    SET @date_star = convert(datetime,replace(left(@x_ft,10),'-',''), 112)
   end
   ELSE IF (CHARINDEX('-', @x_ft)=3)
   BEGIN
    SET @date_star = convert(datetime,replace(left(@x_ft,10),'-','/'), 103)
   end
   ELSE 
   BEGIN
    print @x_ft
  SET @date_star = convert(datetime,replace(replace(left(@x_ft,10),'-',''),'/',''), 121)
   end
 
  IF (@x_cn=4)
  BEGIN
   IF (CHARINDEX('/', @x_ft2)=5)
   BEGIN
    SET @date_end = convert(datetime,left(@x_ft2,10), 111)
   end
   ELSE IF (CHARINDEX('/', @x_ft2)=3)
   BEGIN
    SET @date_end = convert(datetime,left(@x_ft2,10), 103)
   end
   ELSE IF (CHARINDEX('-', @x_ft2)=5)
   BEGIN
    SET @date_end = convert(datetime,replace(left(@x_ft2,10),'-',''), 112)
   end
   ELSE IF (CHARINDEX('-', @x_ft2)=3)
   BEGIN
    SET @date_end = convert(datetime,replace(left(@x_ft2,10),'-','/'), 103)
   end
   ELSE 
   BEGIN
    SET @date_end = convert(datetime,replace(replace(left(@x_ft2,10),'-',''),'/',''), 112)
   end
   SET @RESULT1= ' (cast( ' + @FIELD_TABLE + ' as date) between convert(date, ''' + convert(varchar(10),@date_star,112) + ''',112) and convert(date, ''' +  convert(varchar(10),@date_end,112) + ''',112)) and ';
   SET @RESULT2= 'between ' + convert(varchar(255), @date_star ,103) + ' until ' + convert(varchar(255),@date_end,103);
  end
  ELSE
  BEGIN
     IF (@x_cn=1)
    BEGIN
    SET @RESULT1=  ' (cast(' + @FIELD_TABLE + ' as date) = convert(date, ''' + convert(varchar(10),@date_star,112) + ''',112)) and ';
    SET @RESULT2= '= ' + convert(varchar(255),@date_star,103);
    end
     ELSE IF (@x_cn=2)
    BEGIN
    SET @RESULT1=  ' (cast(' + @FIELD_TABLE + ' as date) < convert(date, ''' + convert(varchar(10),@date_star,112) + ''',112)) and ';
    SET @RESULT2= '< ' + convert(varchar(255),@date_star,103);
    end
     ELSE IF (@x_cn=3)
    BEGIN
    SET @RESULT1=  ' (cast(' + @FIELD_TABLE + ' as date) > convert(date, ''' + convert(varchar(10),@date_star,112) + ''',112)) and ';
    SET @RESULT2= '> ' + convert(varchar(255),@date_star,103);
    end
  end
 end
 ELSE IF @TYPE=2 --ANGKA
 BEGIN
 --CN //1:equal , 2:< , 3:> , 4:between
  SET @x_ft=ltrim(rtrim(@x_ft)) 
   SET @x_ft2=ltrim(rtrim(@x_ft2)) 

  IF (@x_cn=4)
  BEGIN
   SET @RESULT1= ' ( ' + @FIELD_TABLE + ' between ' + @x_ft + ' and ' + @x_ft2 + ' ) and ';
   SET @RESULT2= 'between ' +   @x_ft    + ' until '  +    @x_ft2;
  end
  ELSE
  BEGIN
     DECLARE @xmodecari varchar(255)
     SET @xmodecari=''
 
    IF   ISNUMERIC (@x_ft) !=0
    BEGIN
      IF (CHARINDEX('>=', @x_ft)>0)
      SET @xmodecari='>='
      ELSE IF (CHARINDEX('<=', @x_ft)>0)
      SET @xmodecari='<='
      ELSE IF (CHARINDEX('>', @x_ft)>0)
       SET @xmodecari='>'
      ELSE IF (CHARINDEX('<', @x_ft)>0)
       SET @xmodecari='<'
      ELSE IF (CHARINDEX('=', @x_ft)>0)
       SET @xmodecari='='
       ELSE 
       SET @xmodecari=''
        end  
 
     IF (@x_cn=1)
    BEGIN
    IF @xmodecari=''
    SET @xmodecari=' = ';

    SET @RESULT1=  ' (' + @FIELD_TABLE + @xmodecari + @x_ft + ') and ';
    SET @RESULT2= '= ' +    @x_ft;
    end
     ELSE IF (@x_cn=2)
    BEGIN
    IF @xmodecari=''
    SET @xmodecari=' < ';

    SET @RESULT1=  ' (' + @FIELD_TABLE + @xmodecari + @x_ft + ') and ';
    SET @RESULT2= '< ' +   @x_ft;
    end
     ELSE IF (@x_cn=3)
    BEGIN

    IF @xmodecari=''
    SET @xmodecari=' > ';

    SET @RESULT1=  ' (' + @FIELD_TABLE + @xmodecari + @x_ft + ') and ';
    SET @RESULT2= '> ' +    @x_ft;
    end
     ELSE IF (@x_cn=-1)
    BEGIN

    IF @xmodecari=''
    SET @xmodecari=' = ';

    SET @RESULT1=  ' (NOT (' + @FIELD_TABLE + @xmodecari + @x_ft + ')) and ';
    SET @RESULT2= '> ' +    @x_ft;
    end
  end
 end
 ELSE IF @TYPE=1 --TEXT
 BEGIN 
    IF @BYPASS_LIKE=0 
   BEGIN

   SET @x_ft= replace(@x_ft ,'[', '[[]')
   SET @x_ft= replace(@x_ft ,'''', '''''')
   SET @x_ft= replace(@x_ft ,'%','[%]')
   SET @x_ft= replace(@x_ft ,'_','[_]')
   SET @x_ft= replace(@x_ft ,'*','%')
    

     IF (@x_lr=1) SET @x_ft= @x_ft + '%';
    IF (@x_ll=1) SET @x_ft= '%' +  @x_ft;
    IF ((@x_lr=1) or (@x_lr=1) ) 
        SET @x_ft= ' like ''' + @x_ft + '''';
     ELSE
     SET @x_ft= ' = ''' + @x_ft + '''';
     end
   ELSE
   BEGIN
      
       SET @x_ft= ' = ''' + @x_ft + '''';
    end

   IF @x_ft =''
   SET @RESULT2= '';
   ELSE
   SET @RESULT2= ltrim(rtrim(@x_ft));
   
    SET @RESULT1=' (' + @FIELD_TABLE + ' ' + @x_ft + ') and ';
  
 end  
end
ELSE
BEGIN
 SET @RESULT2= '';
 SET @RESULT1='';
 
end
SET nocount off
     RETURN( 1)
end;

GO

Depends On

No items found