1. SQL / Говнокод #5235

    −861

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    CREATE FUNCTION "insert_payment" (integer) RETURNS integer AS '                                                                                                                     
    DECLARE                                                                                                                                                                             
            l_payment       integer;                                                                                                                                                    
    BEGIN                                                                                                                                                                               
            INSERT INTO payments (client,type_,pdate,number_)                                                                                                                           
            VALUES ($1,4,current_date,nextval_(''payments_number_1_seq''));                                                                                                             
                                                                                                                                                                                        
            SELECT INTO l_payment last_value FROM payments_id_seq;                                                                                                                      
            RETURN l_payment;                                                                                                                                                           
    END;' LANGUAGE 'plpgsql';

    Функция должна вставлять платеж и возвращать его id.
    Под нагрузкой конечно же 8 строка возвращает нен тот id. (когда несколько параллельных транзакций успевают сделать вставку.)
    Что интересно - возвращаемый функцией id используется другой хранимкой для проставления суммы платежа. И это пости всегда работает :)
    Перл от "отцов основателей".

    SanityIO, 12 Января 2011

    Комментарии (6)
  2. C# / Говнокод #5234

    +116

    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
    public RabotaJurnal(string ceh, string kod, string nameN, string nameM, string nameP, string shet, string tip, string statya, string obj, string nomen, string edIzm, double normaTime, double normaVir, double rascenka, DateTime dateFrom, DateTime dateTo)
    {
                   Ceh = ceh;
                   Kod = kod;
                   NameN = nameN;
                   NameM = nameM;
                   NameP = nameP;
                   Shet = shet;
                   Tip = tip;
                   Statya = statya;
                   Obj = obj;
                   Nomen = nomen;
                   EdIzm = edIzm;
                   NormaTime = normaTime;
                   NormaVir = normaVir;
                   Rascenka = rascenka;
                   DateFrom = dateFrom;
                   DateTo = dateTo;
    }

    Конструктор =)

    Guid, 12 Января 2011

    Комментарии (8)
  3. Perl / Говнокод #5233

    −119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $max_conn = 150;
    # ...
    
    socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp') )  || LOG_FLUSH && die "socket: $!";
    setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1)   || LOG_FLUSH && die "setsockopt: $!";
    bind(SERVER, sockaddr_in($port, inet_aton($interface))) ||  LOG_FLUSH && die "bind: $!";
    listen(SERVER,$max_conn) || LOG_FLUSH && die "listen: $!";

    Перл от создателя. $max_conn - это якобы должно быть максимальное число дочерних процессов (причем количество child процессов не проверяется). хотя все знаю что должно передаваться как аргумент backlog :)

    SanityIO, 12 Января 2011

    Комментарии (0)
  4. JavaScript / Говнокод #5232

    +159

    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
    function calls() {                                                                                                                                                                  
            //document.frm_param.form.value="client_calls";
            //document.frm_param.title_.value="Работа с клиентом | Звонки";
            s_url="$bill_cgi$?form=calls"+
                    "&date_begin=01.01.1990"+
                    "&date_end=01.01.2010"+
                    "&call_type=100"+
                    "&phone="+
                    "&to_phone="+
                    "&client=$client$"+
                    "&town_code="+
                    "&direction="+
                    "&zone="+
                    "&order_by=date_"+
                    "&order_by2="+
                    "&group_by="+
                    "&calls_recalc="+
                    "&calls_print=1";
    
            window.top.location=s_url;
    
    }

    (c) Руслан Залата

    SanityIO, 12 Января 2011

    Комментарии (3)
  5. Perl / Говнокод #5231

    −116

    1. 1
    2. 2
    3. 3
    4. 4
    $answer=~ s/\\/\\\\/g;                                                                                                                                                      
    $answer=~ s/\'/\\\'/g;
    # ...
    $dbh->do("INSERT INTO docflow_rules (type_,state1,state2,p,entity,subj_require,comm_require) VALUES ($doctype,$from_,$to_,'$answer',$entity,$subj_r,$comm_r)");

    Еще от неизменного автора.

    SanityIO, 12 Января 2011

    Комментарии (2)
  6. Perl / Говнокод #5230

    −118

    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
    if(
        ( $session_begin ge $tariff_ref->{date} ) &&
        ( !$tariff_ref->{date_end} || $session_begin le $tariff_ref->{date_end} ) &&
        ( !$tariff_ref->{nas_id} || $tariff_ref->{nas_id} eq $nas_id) &&
        ( !$tariff_ref->{ppp_type} || $tariff_ref->{ppp_type} eq $ppp_type) &&
        ( $notariffzone || !$tariff_ref->{tariff_zone} ||
                        $tariff_ref->{tariff_zone} eq $tariff_zone) &&
        ( !$tariff_ref->{client_type} || $tariff_ref->{client_type} eq $client_type) &&
        ( !$tariff_ref->{day_type} || $tariff_ref->{day_type} eq
                        &common::type_of_day($oper_id,$session_begin) ) &&
    
        (
                (!$divide_by_time_zone &&
                        (!$tariff_ref->{time_from} || !$tariff_ref->{time_to}  ||
                                &common::check_time_zone(
                                $session_begin,
                                $tariff_ref->{time_from},
                                $tariff_ref->{time_to}
                                )
                        )
                ) ||
                ($divide_by_time_zone &&
                        (!$tariff_ref->{time_from} || !$tariff_ref->{time_to}  ||
    
                                &common::check_time_zone(
                                $session_begin,
                                $tariff_ref->{time_from},
                                $tariff_ref->{time_to}
                                ) ||
    
                                &common::check_time_zone(
                                $session_end,
                                $tariff_ref->{time_from},
                                $tariff_ref->{time_to}
                                ) ||
    
                                &common::check_time_zone(
                                $tariff_ref->{time_from},
                                common::get_time_from_str($session_begin),
                                common::get_time_from_str($session_end),
                                )
                        )
    
    
                    )
        ) &&
    
        (
                (!$divide_by_counter &&
                        (!defined($tariff_ref->{counter1_from}) || !defined($tariff_ref->{counter1_to})
    
                                || ($tariff_ref->{counter1_from} <= $resource_begin &&
                                $resource_begin < $tariff_ref->{counter1_to} )
                        )
                ) ||
                ($divide_by_counter &&
                            (!defined($tariff_ref->{counter1_from}) || !defined($tariff_ref->{counter1_to})
                                || ($tariff_ref->{counter1_from} <= $resource_begin &&
                                $resource_begin < $tariff_ref->{counter1_to} )
    
                                || ($tariff_ref->{counter1_from} <= $resource_end  &&
                                $resource_end < $tariff_ref->{counter1_to} )
    
                                || ($resource_begin <= $tariff_ref->{counter1_from} &&
                                $tariff_ref->{counter1_from} < $resource_end)
                        )
    
                )
    
    
        )
    
    
    ) {

    Один if от создателя :) Еще (с) Руслан Залата

    SanityIO, 12 Января 2011

    Комментарии (2)
  7. Perl / Говнокод #5229

    −179

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (! $where_oper_id ) {                                                                                                                                                            
            $where_oper_id = " base_clients.oper_id = 'THERE IS NO FUCKING PROVIDERS DEFINED FOR THIS OPERATOR' " ;                                                                     
            $where_service_oper_id = " oper_id = 'THERE IS NO FUCKING PROVIDERS DEFINED FOR THIS OPERATOR' " ;                                                                          
    }                                                                                                                                                                                   
                                                                                                                                                                                        
    $where_oper_id = " ( $where_oper_id ) ";

    Еще от творца.

    SanityIO, 12 Января 2011

    Комментарии (1)
  8. Perl / Говнокод #5228

    −81

    1. 1
    2. 2
    3. 3
    $search =~ s/[\ \%\*\[\]\^\$\']+/\%/g; # '                                                                                                                                          
    my $search_str = '%' . $search . '%';                                                                                                                                               
    $search_str =~ s/\%+/\%/g;

    эскейп стринга для БД (с) Руслан Залата

    SanityIO, 12 Января 2011

    Комментарии (5)
  9. Pascal / Говнокод #5227

    +97

    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
    if MethodName = AnsiUpperCase('Зробити_все_чудово_пречудово') then
      begin
        Screen.Cursor := crHourGlass;
        try
          for LowIndex := 0 to 200 do
          begin
            Application.ProcessMessages;
            Sleep(10);
          end;
          ShowInfo('Тепер все чудово-пречудово.'#13#10'Посміхніться!');
        finally
          Screen.Cursor := crDefault;
        end;
      end

    Внутренний скрипотвый язык

    stokito, 12 Января 2011

    Комментарии (1)
  10. Pascal / Говнокод #5226

    +101

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    procedure TwndMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    var
      s: string;
    begin
      s := UpperCase(GetCompName);
      CanClose :=
        ((Pos('VADIM', s) <> 0) and (DM.DefDBID = 0)) or
        (ShowConfirmation('Ви дійсно бажаєте вийти з програми?') = mrYes);
    end;

    Программиста Вадима реально задолбало это сообщение :)

    stokito, 12 Января 2011

    Комментарии (5)