1. C# / Говнокод #6450

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    public class IterateSQL
    {
    	private int _start = 0;
    	private int _end = 0;
    	private int number = 0;
    	private string TOP_100_PERCENT = "100 percent ";
    	private string SELECT_FROM = " SELECT*FROM (";
    	private string SELECT_TOP_I = "SELECT TOP $I * FROM(";
    	private string SELECT_TOP_F = "SELECT TOP $F * FROM(";
    	private string JOINTURE = @" WHERE maTable.id NOT IN (SELECT maTable.id FROM(";
    	private string CLOSE = ") maTable)";
    	private string SELECT_COUNT = "SELECT COUNT(*) FROM ( XYZ ) maTable";
    	private string _sql;
    	private string _where;
    	private string _parameter = string.Empty;
    	private List<string> _tempParameterList = new List<string>();
    	private Dictionary<string, object> _finalParameterList = new Dictionary<string, object>();
    
    	public IterateSQL(string sql, string where, string parameter)
    	{
    		_sql = sql;
    		_where = where;
    		_parameter = parameter;
    	}
    	
    	public string TransformAndReturnSQL(int start, int end)
    	{
    		_start = start;
    		_end = end;
    		if (_parameter == null)
    			_parameter = string.Empty;
    		string[] split = Utils.Splitter(_parameter);
    		number = split.Length;
    		StringBuilder sb = new StringBuilder(" XYZ ");
    		StringBuilder st = new StringBuilder();
    
    		for (int i = 0; i < number; i++)
    		{
    			if (split[i].ToString() != string.Empty)
    				sb.Insert(0, SELECT_FROM);
    		}
    
    		for (int i = 0; i < number; i++)
    		{
    			if (split[i].ToString() != string.Empty)
    			{
    				sb.Insert(sb.Length, _where);
    				sb.Replace("@param", split[i].ToString());
    			}
    		}
    		sb.Replace("XYZ", _sql);
    		st.Append(sb.ToString());
    		sb.Insert(0, SELECT_TOP_I);
    		sb.Append(JOINTURE);
    		sb.Append(SELECT_TOP_F);
    		sb.Append(st.ToString());
    		sb.Append(CLOSE);
    		sb.Replace("$I", _start.ToString());
    		sb.Replace("$F", _end.ToString());
    
    		return sb.ToString();
    	}
    }

    Вот так надо запросы строить!

    Запостил: _Ru55_, 22 Апреля 2011

    Комментарии (8) RSS

    • мда и в правду херня какая-то
      Ответить
      • Это ещё мягко сказано. Это истинный говнокод.
        Предполагаю автор до этого писал на каком примитивном скриптовом языке и начал перенос своиего кода на диез.
        Ответить
    • Да это просто П*ц! мЭга говнокод!
      Ответить
      • В нашем проекте только избранные говнокоды! :D
        Ответить

    Добавить комментарий