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

    −857

    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
    procedure xxx_procedure
    is
    --   lngIDVidPP Number;
       sSQL       varchar2(4000);
    begin
    sSQL := '';
    sSQL := sSQL || ' Declare ';
    sSQL := sSQL || '    lngIDVidPP Number; ';
    sSQL := sSQL || '    lngColRec  Number; ';
    sSQL := sSQL || '    strTypeProc Varchar2(255); ';
    sSQL := sSQL || ' BEGIN ';
    sSQL := sSQL || ' for rec in (select f.param2 , A.idpp, pp.crastr, pp.cvector, a.param1, a.et, a.tet ';
    sSQL := sSQL || '  from table1 e, T_IDPP@' || 'app' || '_' ||'xxx' || ' a, table2 f, ';
    sSQL := sSQL || '   t_pp_card@' || 'app' || '_' || 'xxx' || ' pp,  refitem r';
    sSQL := sSQL || '  where ';
    sSQL := sSQL || '   e.param1 = a.param1 ';
    sSQL := sSQL || '   and e.id_building = F.ID_BUILDING ';
    sSQL := sSQL || '   and F.FLOOR_NUMBER = a.et ';
    sSQL := sSQL || '   and R.REFERENCEID = 2019 and R.ITEMID = F.ID_FLOOR_TYPE';
    sSQL := sSQL || '   and R.CODE = a.tet';
    sSQL := sSQL || '   and a.idpp = pp.cidpp)';
    sSQL := sSQL || '  loop ';
    sSQL := sSQL || '     lngColRec := 0; ';
    sSQL := sSQL || '     lngIDVidPP := 0; ';
    sSQL := sSQL || '     SELECT COUNT(*) INTO lngColRec FROM T_PROCESS_PP@' || 'app' || '_' || 'xxx || ' Z ';
    sSQL := sSQL || '                     WHERE Z.PPP_UNOM = rec.param1 AND Z.PPP_ET = rec.et AND Z.PPP_TET = rec.tet; ';
    sSQL := sSQL || '     if lngColRec = 0 then ';
    sSQL := sSQL || '        if BITAND(rec.crastr, 8) <> 0 and BITAND(rec.cvector, 8) <> 0 then ';
    sSQL := sSQL || '           lngIDVidPP := 50868; ';
    sSQL := sSQL || '        else ';
    sSQL := sSQL || '           if BITAND(rec.crastr, 8) <> 0 then ';
    sSQL := sSQL || '              lngIDVidPP := 50866; ';
    sSQL := sSQL || '           else ';
    sSQL := sSQL || '              lngIDVidPP := 50867; ';
    sSQL := sSQL || '           end if; ';
    sSQL := sSQL || '        end if; ';
    sSQL := sSQL || '        update table2 f ';
    sSQL := sSQL || '            set f.xx      = rec.idpp, ';
    sSQL := sSQL || '                f.xxx   = lngIDVidPP, ';
    sSQL := sSQL || '                f.xxxx = 54554 ';
    sSQL := sSQL || '          where f.xxxxx = rec.id_floor; ';
    sSQL := sSQL || '     else  '; --if lngColRec > 0 then
    sSQL := sSQL || '          strTypeProc := Null; ';
    sSQL := sSQL || '          SELECT Y.PH_ACTION_KEY INTO strTypeProc ';
    sSQL := sSQL || '            FROM T_PROCESS_HEAD@' || 'app' || '_' || 'SGP' || ' Y ';
    sSQL := sSQL || '            WHERE ';
    sSQL := sSQL || '                 Y.PHID IN (SELECT X.PPP_PHID ';
    ...... 10 строк вырезано из-за ограничения 4000символов
    sSQL := sSQL || '               if BITAND(rec.crastr, 8) <> 0 and BITAND(rec.cvector, 8) <> 0 then ';
    sSQL := sSQL || '                  lngIDVidPP := 50868; ';
    sSQL := sSQL || '               else ';
    sSQL := sSQL || '                  if BITAND(rec.crastr, 8) <> 0 then ';
    sSQL := sSQL || '                     lngIDVidPP := 50866; ';
    sSQL := sSQL || '                  else ';
    sSQL := sSQL || '                     lngIDVidPP := 50867; ';
    sSQL := sSQL || '                  end if; ';
    sSQL := sSQL || '               end if; ';
    sSQL := sSQL || '                  update table3 f ';
    sSQL := sSQL || '                     set f.ID_PLANE_G = rec.idpp, ';
    sSQL := sSQL || '                     f.id_plane_scan = lngIDVidPP, ';
    sSQL := sSQL || '                     f.id_status_plane = 54552 ';
    sSQL := sSQL || '               where f.param1 = rec.param1; ';
    sSQL := sSQL || '           ELSE ';
    sSQL := sSQL || '                  update table3 f ';
    sSQL := sSQL || '                 set f.id_status_plane = 54552 ';
    sSQL := sSQL || '               where f.param1 = rec.param1; ';
    sSQL := sSQL || '           END IF; ';
    sSQL := sSQL || '     end if; ';  --if lngColRec > 0 then
    sSQL := sSQL || '   end loop;';
    sSQL := sSQL || '  null;';
    sSQL := sSQL || '  end;';
    
    EXECUTE IMMEDIATE sSQL;
            dbms_output.put_line ('Процедура xxx_procedure успешно создана');
    EXCEPTION
      WHEN OTHERS THEN dbms_output.put_line('Ошибка создания xxx_procedure. ' || SQLERRM);
    end;

    В связи с NDA названия изменены.

    kamapcuc, 23 Июня 2010

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

    +120

    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
    protected void GridView1_PreRender(object sender, EventArgs e)
        {         
             System.Drawing.Color OddGridColor = new System.Drawing.Color();
             OddGridColor = System.Drawing.Color.FromArgb(0xD3, 0xDE, 0xEF);
             System.Drawing.Color EvenGridColor = new System.Drawing.Color();
             EvenGridColor = System.Drawing.Color.FromArgb(0xEC, 0xE9, 0xD8);
    
                for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                      if (i % 2 == 1)
                      {
                          GridView1.Rows[i].BackColor = OddGridColor;
                      }
                      else
                      {
                          GridView1.Rows[i].BackColor = EvenGridColor;
                      }
                 }
        }

    the way of change GridView color through one ...
    Why do not use <AlternatingRowStyle> ?!!

    O_O, 23 Июня 2010

    Комментарии (17)
  3. Pascal / Говнокод #3544

    +102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    case dlg.sort.ItemIndex of
             0: Qry.SQL.Add('ORDER BY b.nn_rez;');
             1: if dlg.view.ItemIndex=1 then Qry.SQL.Add('ORDER BY c.prod_code;')
                                                     else Qry.SQL.Add('ORDER BY c.kod_okp;');
             2: if dlg.view.ItemIndex=1 then Qry.SQL.Add('ORDER BY c.res_name;')
                                                     else Qry.SQL.Add('ORDER BY c.naimres;');
         end;

    Твой кролик писал!
    кто-то явно мастер на выдумки

    Grizzly, 23 Июня 2010

    Комментарии (2)
  4. PHP / Говнокод #3543

    +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
    23. 23
    $pass = 12345; 
    
    if (!isset($_POST['pass'])) { 
    $pass = $_GET['pass']; 
    } 
    else 
    { 
    $pass = $_POST['pass']; 
    } 
    if ($pass !== $pass) { 
    
    echo '<form method = "post" action = "pass.php?"> 
          Пароль:<br/> 
          <input name = "pass" type = "password"/><br/> 
          <input type = "submit" value = "OK"/></form>'; 
          } 
          echo 'Тебе сюда можна'; 
          ....блаблабла  
          } else { 
          echo 'Низя :)'; 
          break; 
          } 
          }

    >>Надо чтобы проверял если там дата[2] не пуста то показал форму инпут.
    жесть)))

    Aligan, 23 Июня 2010

    Комментарии (23)
  5. C++ / Говнокод #3542

    +160

    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
    //
    Fraction Fraction::operator +(Fraction &ob)
    {
    	int f;int d; int c; int k; int l; int z;
    	char*p; char*x;
    	p=new char; x=new char;
    	Fraction tempOb;
    	if(strcmp(znam, ob.znam)==0)
    	{
    		f=atoi(tempOb.chisl);
    		d=atoi(ob.chisl);
    		c=atoi(chisl);
    		f=d+c;
    		k=atoi(tempOb.znam);
    		l=atoi(znam);
    		k=l;
    		p=itoa(f,p,10);
    		x=itoa(k,x,10);
    		strcpy(tempOb.chisl,p);
    		strcpy(tempOb.znam,x);
    	}
    	else
    	{
    		f=atoi(tempOb.chisl);
    		d=atoi(ob.chisl);
    		c=atoi(chisl);
    		k=atoi(ob.znam);
    		l=atoi(znam);
    		f=c*k+d*l;
    		z=atoi(tempOb.znam);
    		z=l*k;
    		p=itoa(f,p,10);
    		x=itoa(z,x,10);
    		strcpy(tempOb.chisl,p);
    		strcpy(tempOb.znam,x);
    	}
    	tempOb.operator ~();
    	return tempOb;
    }
    //

    Нашел баг с переполнением, если вводишь слишком большие числа. Пытаюсь сделать через char. Работает. Но такие фрагменты кода убивают. Реально сделать легче, а еще лучше если сразу через int?

    ForEveR, 23 Июня 2010

    Комментарии (15)
  6. SQL / Говнокод #3541

    −862

    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
    SELECT wine_name,wine_year,cost FROM Wines 
    INNER JOIN storage ON wines.wine_ID=storage.wine_ID
    INNER JOIN pricelist ON storage.wine_ID=pricelist.wine_ID
    WHERE fabric_ID=(SELECT fabric_ID FROM fabrics WHERE Name="Toscana Italy")
    AND count>0 ORDER BY wine_year ASC LIMIT 1,1000;
    
    SELECT wine_name,cost,count FROM wines
    INNER JOIN storage ON wines.wine_ID=storage.wine_ID
    INNER JOIN vendorprices ON storage.wine_ID=vendorprices.wine_ID
    WHERE count > 0 ORDER BY wine_name DESC LIMIT 1,1000;
    
    SELECT wine_name,cost,count FROM wines
    INNER JOIN storage ON wines.wine_ID=storage.wine_ID
    INNER JOIN vendorprices ON storage.wine_ID=vendorprices.wine_ID
    WHERE count = 0 ORDER BY wine_name DESC LIMIT 1,1000;

    Извращаюсь как могу лишь бы запросы напоминали двух-критериальные. Впрочем таковыми они от этого не становятся. Думаю еще добавить по три-четыре подзапроса и побольше джойнов, жаль условных конструкций не знаю(собственно сутки-двое изучаю SQL)
    Институт сказал "Надо", студент ответил... ну впрочем неважно что ответил, но сделал...

    Ivan0x32, 23 Июня 2010

    Комментарии (14)
  7. C# / Говнокод #3540

    +125

    1. 1
    2. 2
    3. 3
    int platform = (int) Environment.OSVersion.Platform;
    if (platform != 4 && platform != 128)
          return;

    Из gbrainy (входит в поставку Ubuntu 10.04), причём это рекомендованный самим Мигелем де Иказой подход.
    Экскурс: в кроссплатформенном™ фреймворке MS .NET 1.0/1.1® в энумерации PlatformID не было ничего кроме Windows'ов (Linux в паре мест официально числился Invalid). Ребята из моно кустарно добавили PlatformID.Unix == 128. Затем в MS. NET 2.0 всё-таки открыли для себя Mac OS X и Unix, но проставили PlatformID.Unix == 4. Благими намерениями вымощена дорога в к говнокоду :)

    cfdev, 22 Июня 2010

    Комментарии (27)
  8. C++ / Говнокод #3539

    +164

    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
    list::list(FILE*f,FILE*f1){
        first=(starosta*)new student;
        rea=first;
        int i=0,j;
        for(j=0;j<5;j++){
            if (i) {
                rea->next=(starosta*)new student;
                rea=rea->next;
            }
            i=1;
            fscanf(f,"%d",&(rea->num));
            fscanf(f,"%s",rea->fam);
            fscanf(f,"%d",&(rea->stip));
            rea->flag=0;
        }
        cur=(starosta*)rea;
        for(j=0;j<3;j++){
            cur->next=new starosta;
            cur=(starosta*)cur->next;
            cur->flag=1;
            fscanf(f1,"%d",&(cur->num));
            fscanf(f1,"%s",cur->fam);
            fscanf(f1,"%d",&(cur->stip));
            fscanf(f1,"%d",&(cur->kolvo));
            cur->next=NULL;
        }
    }

    классный конструктор... тут много приколов

    tony, 22 Июня 2010

    Комментарии (17)
  9. C++ / Говнокод #3538

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    switch(c=getchar()){
        case '1': l+1; break;
        case '2': l+2; break;
        case '3': printf("\n Spisok:");l.print_all(); break;
        case '4': l-5; break;
    }

    кто угадает куда девается результат сложения и зачем оно надо пусть возьмет с полки пирожок

    tony, 22 Июня 2010

    Комментарии (55)
  10. C++ / Говнокод #3537

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    if (cur1!=NULL){
    	while(cur1!=NULL){
    	...
    }

    Вот такие вот потрясающие проверки в духе "нуавдруг?"

    tony, 22 Июня 2010

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