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

    +127

    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
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    string res = "";
                try
                {
                    if (org_id == NewId.ToString())
                    {
                        string query = "delete from ARMVZ_CONFIG where org_id = " + org_id;
                         OdbcCommand cmd = new OdbcCommand(query, getConnect());
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = "delete from organisations where id = " + org_id;
                         cmd.ExecuteNonQuery();
                        cmd.CommandText = "delete from services where orgid = " + org_id;
                        cmd.ExecuteNonQuery();
                        NewId = 0;
                         res = "";
                    }
                    else
                    {
                        try
                        {
                            string query = "select * from tmp_organisations where id = " + org_id;
                             OdbcCommand cmd = new OdbcCommand(query, getConnect());
                            DataTable dt = new DataTable();
                            dt.Load(cmd.ExecuteReader());
                            if (dt.Rows.Count > 0)
                             {
                                query = "update organisations set ";
                                foreach (DataColumn col in dt.Columns)
                                {
                                    if (col.ColumnName != "id")
                                     {
                                        query = query + col.ColumnName +
                                                                 " = (select " + col.ColumnName +
                                                                    @" from tmp_organisations where tmp_organisations.id = " + org_id + " ),";
                                     }
                                }
                                query = query.Remove(query.Length - 1);
                                query = query + " where id = " + org_id;
                                 cmd.CommandText = query;
                                dt.Dispose();
                                cmd.ExecuteNonQuery();
    
                            }
                        }
                        catch
                         {
                            //
                        }
                        try
                        {
                            string query = "select * from tmp_armvz_config where org_id = " + org_id;
                             OdbcCommand cmd = new OdbcCommand(query, getConnect());
                            DataTable dt = new DataTable();
                            dt.Load(cmd.ExecuteReader());
                            if (dt.Rows.Count > 0)
                             {
                                query = "update armvz_config set ";
                                foreach (DataColumn col in dt.Columns)
                                {
                                    if (col.ColumnName != "org_id")
                                     {
                                        query = query + col.ColumnName +
                                                                 " = (select " + col.ColumnName +
                                                                    @" from tmp_armvz_config where tmp_armvz_config.org_id = " + org_id + " ),";
                                     }
                                }
                                query = query.Remove(query.Length - 1);
                                query = query + " where org_id = " + org_id;
                                 cmd.CommandText = query;
                                dt.Dispose();
                                cmd.ExecuteNonQuery();
    
                            }
                        }
                        catch
                         {
                            //
                        }

    метод называется "rollback_transaction". весь метод просто не влез

    Запостил: bercerker, 11 Января 2012

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

    • представляю себе последствия такого "отката"
      Ответить
    • показать все, что скрытоКак-же вы меня зае@#ли, сраные неучи. Когда-же до вас, ограниченных, дойдёт, что ублюдочное ООП - вовсе не то, что дано от природы и незыблемо и нерушимо. ООП удобно только лишь для определённого и весьма узкого круга задач, не более того. То, что оно попало в мейнстрим - недоразумение. Можно прекрасно программировать без этого дерьма, не тратя время на выстраивание идиотских иерархий классов. 90% своего времени программирующий в ООП-style тратит на размышление, в какой класс что пихать, совершенно не понимая простой истинны - наш мир устроен так, что большинство вещей нихрена в эти самые классы и иерархии не укладываются, как ни усрись. Да что там говорить, ООП и бесконечный рефакторинг - почти синонимы. Там где кодер на C/Haskell/Lisp/Prolog один раз напишет одну функцию/предикат/whatever быдлокодер на C++/Жабе/Говношарпе нагородит иерархию из 10 классов и будет месяцами перемещать методы из класса в класс. Заказчик попросил новую фичу ? Ах, "архитектура нашей программы не поддерживает это нововведение", надо всё переписывать.

      Не трахай ОПу мозг, пусть учит C - этот язык переживёт жабу, говношарп, мелкософт, гугл и оракел. И Тролльвалдс со своей цитатой прав как никогда.
      Ответить
      • данный гавнокод написал начальник с почты. я думаю Вам стоит там работать с таким подходом.
        Ответить
        • Не надо разговаривать с копипастой.
          Ответить
          • больше не буду. когда мне присылают код товарища, просто плачу. ну как его не вспомнить )
            Ответить
    • 3 года самых напряженных на почте завершились невероятным умением писать очень качественный код.
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • - Давай-ка задом, мила, - я шлёпнул Елену по ляжке, и она неловко перевернулась, встала на колени, высоко подняла зад.
      Ответить

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