1. Pascal / Говнокод #15435

    +91

    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
    if not DM.For_Akc_Base_Update.InTransaction then
          DM.For_Akc_Base_Update.StartTransaction;
                  Close;
                  SQL.Clear;
                  SQL.Add('insert into Bank (BNAME, full_name, bik, ks, inn, rkc,postind,postcity,postaddr,telef ) values ');
                  SQL.Add('('''+edName.Text+''', '''+mFull_Name.Text+''', ');
                  SQL.Add(' '''+edBik.Text+''', ');
                  SQL.Add(''''+edKS.Text+''', '''+edInn.Text+''', ');
                  SQL.Add(''''+edRkc.Text+''', '''+edInd.Text+''', ');
                  SQL.Add(''''+edCity.Text+''', '''+edAdr.Text+''', ');
                  SQL.Add(''''+edTel.Text+''' )');
                  ExecSQL;
                  DM.For_Akc_Base_Update.Commit;
                      DM.Bank.Close;
                      DM.Bank.Open;

    Принял проект. Начал смотреть. Вот так вот добавляют запись в таблицу. И так по всему проекту.

    Запостил: Vince, 12 Марта 2014

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

    • показать все, что скрытоЛакни мои яйца.
      Ответить
    • Лабоориентированное программирование.
      Ответить
    • Нельзя не вспомнить
      http://xkcd.com/327/
      Ответить
    • Может экономят ресурсы. Я как то проект ковырял на Yii сделанный с применением ORM пришлось адаптеры пилить между моделями и БД что бы выборки были на чистом SQL иначе все валилось на ухнарь.
      Ответить
      • показать все, что скрытоДаже если кто-то и экономит ресурсы, это не значит, что ты можешь экономить узость своего заднего прохода. Нагибайся и раздвигай ягодицы - сейчас я проникну в тебя без смазки.
        Ответить
    • Интересно, как они с таким подходом собрались делать множественный insert.
      Ответить
      • показать все, что скрытоЭто как тройное проникновение в твою мамашу-блядину.
        Ответить
      • Очевидно же, вызвать функцию вставки данных множество раз.
        Ответить
      • Ну дык это всего лишь проблема производительности. Без множественного insert'а вполне можно прожить втыкая записи в цикле.
        Ответить
        • А как же транзакционность? Вдруг понадобится вставить либо все записи либо ни одной?
          Ответить
          • > А как же транзакционность?
            > Вдруг понадобится вставить либо все записи либо ни одной?
            BEGIN ... COMMIT уже выкинули из стандарта?
            Ответить
            • Там же явный коммит после инсёрта в 14 строке...
              Ну хотя условия переиспользовать прям этот код не было.
              Ответить
              • 3-12 строки в цикл обернуть и всё будет нормально ;) Весь пакет уйдет в одной транзакции.
                Ответить
                • Главное его быстро прокрутить.
                  Ответить
                • Вот интересно. Никогда не озадачивался таким вопросом, но если сделать по уму, т. е. с подготовленными выражениями, то при множественной вставке запрос будет скомпилирован всё равно один раз, если в одной транзакции будет?
                  Ответить
                  • Ну компиляция запроса же будет на prepare, а оно юзается один раз.
                    Ответить

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