You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
5.5 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_CheckRange] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. */
  10. CREATE proc [dbo].[proc_CheckRange]
  11. @sql VARCHAR(MAX)
  12. ,@from MONEY
  13. ,@to MONEY
  14. ,@id INT = NULL
  15. ,@success INT = 0 OUTPUT
  16. AS
  17. DECLARE @message VARCHAR(1000)
  18. DECLARE @dataArray TABLE(amtFrom MONEY, amtTo MONEY)
  19. INSERT @dataArray
  20. EXEC(@sql)
  21. IF @from > @to
  22. BEGIN
  23. EXEC proc_errorHandler 1, '[Amount To] is less than [Amount From]', @id
  24. RETURN
  25. END
  26. IF EXISTS (SELECT 'X' FROM @dataArray WHERE amtFrom = @from)
  27. BEGIN
  28. SET @message = 'Starting from ' + CAST(@from AS VARCHAR) + ' has already been defined.'
  29. EXEC proc_errorHandler 1, @message, @id
  30. RETURN
  31. END
  32. IF EXISTS (SELECT 'X' FROM @dataArray WHERE amtTo = @to)
  33. BEGIN
  34. SET @message = 'Ending with ' + CAST(@to AS VARCHAR) + ' has already been defined.'
  35. EXEC proc_errorHandler 1, @message, @id
  36. RETURN
  37. END
  38. IF EXISTS (SELECT 'X' FROM @dataArray WHERE amtFrom = @to)
  39. BEGIN
  40. SET @message = 'You can not set a parameter ending with ' + CAST(@to AS VARCHAR) + ' because a parameter starting from this value has already been defined.'
  41. EXEC proc_errorHandler 1, @message, @id
  42. RETURN
  43. END
  44. IF EXISTS (SELECT 'X' FROM @dataArray WHERE amtTo= @from)
  45. BEGIN
  46. SET @message = 'You cant not set a paramter starting from ' + CAST(@from AS VARCHAR) + ' because a parameter ending with this value has already been defined.'
  47. EXEC proc_errorHandler 1, @message, @id
  48. RETURN
  49. END
  50. IF EXISTS (SELECT 'X' FROM @dataArray WHERE @from >= amtFrom AND @from <= amtTo)
  51. BEGIN
  52. SET @message = 'You can not set a parameter starting from ' + CAST(@from AS VARCHAR) + ' because a parameter covering this value in its range has already been defined.'
  53. EXEC proc_errorHandler 1, @message, @id
  54. RETURN
  55. END
  56. IF EXISTS (SELECT 'X' FROM @dataArray WHERE @to >= amtFrom AND @to <= amtTo)
  57. BEGIN
  58. SET @message = 'You can not set a parameter ending with ' + CAST(@to AS VARCHAR) + ' because a parameter covering this value in its range has already been defined.'
  59. EXEC proc_errorHandler 1, @message, @id
  60. RETURN
  61. END
  62. IF EXISTS (SELECT 'X' FROM @dataArray WHERE @from <= amtFrom AND @to >= amtTo)
  63. BEGIN
  64. SET @message = 'You can not set this parameter because parameter within ' + CAST(@from AS VARCHAR) + ' and ' + + CAST(@to AS VARCHAR) + ' has already been defined.'
  65. EXEC proc_errorHandler 1, @message, @id
  66. RETURN
  67. END
  68. -- SELECT * from @range WHERE @from >= a AND @from <= b
  69. --SELECT * from @range WHERE @to >= a AND @to <= b
  70. --SELECT * FROM @range WHERE @from <=a AND @to >= b
  71. SET @success = 1
  72. GO