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
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