Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| 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.OlahFindViewType2
@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
---XencX---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
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 ,'*','%')
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
GO
CREATE procedure dbo.OlahFindViewType2
@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
---XencX---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
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 ,'*','%')
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