1. Список говнокодов пользователя tucvbif

    Всего: 22

  2. SQL / Говнокод #27236

    0

    1. 1
    2. 2
    3. 3
    if @OWNER_PHONE <> @OLD_PHONE set @PHONE = @OWNER_PHONE
          if @PHONE <> @OLD_PHONE set @OWNER_PHONE = @PHONE
          set @PHONE = @OWNER_PHONE

    tucvbif, 05 Февраля 2021

    Комментарии (2)
  3. SQL / Говнокод #27158

    +1

    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
    declare @NL table
     (ARTICLE_ID int primary key,
      M int,
      DS datetime,
      DD datetime,
      RAS money,
      REST money,
      NWS money,
      NWA money,
      LD_AMOUNT money,
      LD_DATE datetime,
      IS_NL bit,
      SCC_ID int,
      IS_NOT_MARKDOWN bit)

    Double Side,Single Density / Double Side, Double Density — это понятно. Но почему datetime?

    tucvbif, 09 Декабря 2020

    Комментарии (22)
  4. SQL / Говнокод #23355

    0

    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
    while exists (
      select 
        C.CONTRAGENT_NAME,
        PR.PHONE 
      from CONTRAGENTS C
        inner join CONTRAGENT_PROPERTIES PR on PR.CONTRAGENT_ID = C.CONTRAGENT_ID
      except select NAME,PHONE from IMPORT_SOURCE)
    begin
      declare @IDENTITIES table (CONTRAGENT_ID int)
      insert CONTRAGENTS (
        CONTRAGENT_NAME,
        …)
      output inserted.CONTRAGENT_ID into @IDENTITIES
      select distinct
        NAME,
        …
      from IMPORT_SOURCE
    
      insert CONTRAGENT_PROPERTIES (
        …,
        PHONE,
        …)
      select
        …,
        S.PHONE
        …
      from @IDENTITIES I
        inner join CONTRAGENTS C on C.CONTRAGENT_ID = I.CONTRAGENT_ID
        cross apply (
          select top 1
          from IMPORT_SOURCE S
            left join (
              select
                C.CONTRAGENT_NAME,
                PR.PHONE 
              from CONTRAGENTS C
                inner join CONTRAGENT_PROPERTIES PR on PR.CONTRAGENT_ID = C.CONTRAGENT_ID
            ) TX on TX.CONTRAGENT_NAME = S.NAME and TX.PHONE = S.PHONE
          where TX.CONTRAGENT_NAME is null)
    end

    Импорт. В источнике за ключевые поля нужно было взять NAME и PHONE, которые в целевой базе — в разных таблицах. Курсоры — слишком долго.

    tucvbif, 23 Сентября 2017

    Комментарии (0)
  5. SQL / Говнокод #22100

    −50

    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
    select
    0 as IS_WRK,
    case when DD.DELIVERY_DET_ID is null then 1 else 0 end NW,
    0 as NH,
    round(WO.AMOUNT * AD.PRICE_BASE*100.0/(100.0+AD.NDS), 2)*AMM.CURS*CDS.CURRENCY_KOEF/CDV.CURRENCY_KOEF as SUMM_NO_NDS,
    round(WO.AMOUNT * AD.PRICE_BASE, 2)*AMM.CURS*CDS.CURRENCY_KOEF/CDV.CURRENCY_KOEF as SUMM_VV,
    case 
      when DD.DELIVERY_DET_ID is null
        then 
         ( isnull(round(WO.AMOUNT * A.PRICE_IN *
               (select CURRENCY_KOEF from CURRENCY_DAILY (nolock) where CURRENCY_GROUP_ID =
                  (select CURRENCY_GROUP_ID from CURRENCY_GROUP (nolock) where CURRENCY_DATE =
                     (select max(CURRENCY_DATE) from CURRENCY_GROUP (nolock) where CURRENCY_DATE <= AD.DATE_ACTION)) and CURRENCY_ID = @Currency)
              /
               (select CURRENCY_KOEF from CURRENCY_DAILY (nolock) where CURRENCY_GROUP_ID =
                  (select CURRENCY_GROUP_ID from CURRENCY_GROUP (nolock) where CURRENCY_DATE =
                     (select max(CURRENCY_DATE) from CURRENCY_GROUP (nolock) where CURRENCY_DATE <= AD.DATE_ACTION)) and CURRENCY_ID = A.CURRENCY_ID), 2),0)
          )
       
       else 
         (     /* 08.04.2015 - 4700 BEGIN */
             ISNULL (  round(WO.AMOUNT *case @Currency
               when DM.CURRENCY_ID then  DD.PRICE_NO_NDS
               when @CurrencyBase then DD.PRICE_BASE*(100.0/(100.0+DD.NDS))
               else DD.PRICE_BASE*(100.0/(100.0+DD.NDS))*CDS.CURRENCY_KOEF
            end, 2),  0)  
             /* 08.04.2015 - 4700 END */
          )
       end
      as IN_NO_NDS,
    case 
      when DD.DELIVERY_DET_ID is null
        then 
         ( isnull(round(WO.AMOUNT * A.PRICE_IN *
               (select CURRENCY_KOEF from CURRENCY_DAILY (nolock) where CURRENCY_GROUP_ID =
                  (select CURRENCY_GROUP_ID from CURRENCY_GROUP (nolock) where CURRENCY_DATE =
                     (select max(CURRENCY_DATE) from CURRENCY_GROUP (nolock) where CURRENCY_DATE <= AD.DATE_ACTION)) and CURRENCY_ID = @Currency)
              /
               (select CURRENCY_KOEF from CURRENCY_DAILY (nolock) where CURRENCY_GROUP_ID =
                  (select CURRENCY_GROUP_ID from CURRENCY_GROUP (nolock) where CURRENCY_DATE =
                     (select max(CURRENCY_DATE) from CURRENCY_GROUP (nolock) where CURRENCY_DATE <= AD.DATE_ACTION)) and CURRENCY_ID = A.CURRENCY_ID), 2),0)
          )
       
       else 
         (     /* 08.04.2015 - 4700 BEGIN */
             ISNULL(round(WO.AMOUNT *case @Currency
               when DM.CURRENCY_ID then  DD.PRICE
               when @CurrencyBase then DD.PRICE_BASE
               else DD.PRICE_BASE*(100.0/(100.0+DD.NDS))*CDS.CURRENCY_KOEF
            end, 2), 0) 
              /* 08.04.2015 - 4700 END */
          )
       end
       as IN_VV,
    AD.USER_WRITER as WRITER,
    AD.ACCOUNT_ID
    from ACCOUNT_DETAIL as AD (nolock)
    inner join @AM as AM on AM.ACCOUNT_ID = AD.ACCOUNT_ID
    inner join ARTICLE as A (nolock) on A.ARTICLE_ID = AD.ARTICLE_ID
    left join #_WRITEOUT_TEMP_REST_ as WO on WO.ACCOUNT_DET_ID = AD.ACCOUNT_DET_ID
    left join DELIVERY_DETAIL as DD (nolock) on WO.ROOT_ID = DD.DELIVERY_DET_ID
    left join DELIVERY_MASTER as DM (nolock) on DM.DELIVERY_MST_ID = DD.DELIVERY_MST_ID
    inner join ACCOUNT_MASTER AMM (nolock) on AMM.ACCOUNT_ID=AM.ACCOUNT_ID
    inner join CURRENCY_DAILY CDV (nolock) on ((CDV.CURRENCY_GROUP_ID = AMM.CURRENCY_GROUP_ID)and(CDV.CURRENCY_ID = AMM.CURRENCY_ID))
    inner join CURRENCY_DAILY CDS (nolock) on ((CDS.CURRENCY_GROUP_ID = AMM.CURRENCY_GROUP_ID)and(CDS.CURRENCY_ID = @Currency)) 
    where
    AD.IS_WRITEOUT = 0 and AD.OUT = 1
    and (@Articles = '' and @ArticleGroups = '' or charindex(',' + convert(varchar, A.ARTICLE_ID) + ',', @Articles) > 0
    or charindex(',' + convert(varchar, A.GROUP_ID) + ',', @ArticleGroups) > 0)

    Xzibit.jpg

    tucvbif, 01 Февраля 2017

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

    −54

    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
    type
      TheCurrency = class(TObject)
            id: Integer;
            name: String;
      end;
    
      TheWHouse = class(TObject)
            id: Integer;
            name: String;
      end;
    
      TheProvider = class(TObject)
            id: Integer;
            name: String;
      end;
    
      TheNds = class(TObject)
            nds: Double;
      end;

    tucvbif, 16 Января 2017

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

    −49

    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
    dep_id:=-1;
    next_day:=1;
    cds.First;
    while not (cds.Eof) do
    begin
      if (dep_id <> cds.FieldByName('DEP_ID').AsInteger) then
      begin
        dep_id := cds.FieldByName('DEP_ID').AsInteger;
        //переходим на новую страницу, печатаем шапку
        //...
        
        row:=7;
        next_day :=1;
      end;
      if (DS_Parametes.FieldByName('DATE').AsString <> FieldByName('RS_DATE').AsString) and (next_day <> 5) then
             next_day := 2;
      if (next_day < 3) then
      begin
        //Печатаем шапку дня 
        //...
        if (DS_Parametes.FieldByName('DATE').AsString <> cds.FieldByName('RS_DATE').AsString)  then
        begin
          WS.Cells[Row,01]:= 'Завтра, '+ cds.FieldByName('RS_DATE').AsString;
          next_day :=5;
        end
        else
        begin
          WS.Cells[Row,01]:= cds.FieldByName('RS_DATE').AsString;
          next_day :=4;
        end;
        inc(row);
      end;
      //Ну и дальше печатаем строчки таблицы
      //...
      inc(row);
      cds.next;
      
    end;

    next_day := 4

    tucvbif, 22 Декабря 2016

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

    +5

    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
    Action doItWrong;
    var filename = "sdf";
    using (var fileStream = new FileStream(filename,FileMode.Create))
    {
    	doItWrong=()=>
    	{
    		for(int i = 0; i < 10; i++)
    		{
    			fileStream.WriteByte(255);
    		}
    	};
    }
    doItWrong();

    Интересно, почему такое вообще не запрещают компилировать?

    tucvbif, 11 Апреля 2016

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

    0

    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
    WriteBuffer = enc.GetBytes("$ FETCH " + number + " BODY[HEADER]\r\n");
    netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
    ListMessage = strReader.ReadLine();
    //...
    while ((ListMessage.IndexOf("$ OK ") == -1) && (ListMessage.IndexOf("$ BAD ") == -1))
    {
            //Типа там читаем всякие заголовки и прочие бла-бла
            if (ListMessage.IndexOf("filename=") > -1)
            {
                    temp = ListMessage.Replace("filename=", "");
                    temp = temp.Trim();
                    file_name = temp;
                    is_file = 1; temp = ""; is_att = 1;
            }
            //...
            ListMessage = strReader.ReadLine();
            continue;
    }
    //...
    WriteBuffer = enc.GetBytes("$ FETCH " + number + " BODY[TEXT]\r\n");
    netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
    ListMessage = strReader.ReadLine();
    
    temp = "";
    end_file = 0;
    body = "";
    if (ListMessage.IndexOf("$ BAD ") == -1) ListMessage = strReader.ReadLine();
    if (ListMessage == "")
            is_body = 0;
    else
            is_body = 1;
    while ((ListMessage.IndexOf("$ OK ") == -1) && (ListMessage.IndexOf("$ BAD ") == -1))
    {
            if (is_body == 1)
            {
                    if (ListMessage == "")
                            is_body = 0;
                    else
                            body = body + ListMessage;
            }
            if ((is_att == 1) && (end_file == 0))
            {
                    if (is_file == 1)
                    {
                            if (ListMessage.IndexOf("--") > -1)
                                    end_file = 1;
                            else
                                    temp = temp + ListMessage;
                    }
                    if (ListMessage == "")
                    {
                            is_file = 1;
                    }
            }
            if (ListMessage.IndexOf("Content-Disposition: attachment;") > -1)
            {
                    is_att = 1;
            }
            //...
            ListMessage = strReader.ReadLine();
            continue;
    }
    if (is_att==0)
    {
            //А тут ничего интересного, просто декодирование из Base64 и сохранение в файл
    }

    Следите за булями (точнее, их суррогатами).

    ЗЫ: да, я уже выкладывал кусок из того же модуля, и там уже были некоторые куски, которые попали и сюда тоже.

    tucvbif, 02 Апреля 2016

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

    0

    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
    public static IEnumerable fGetPostIMAP(string port, int port2, string username, string password, string startCount, string path)
    {
        Stopwatch swatch = new Stopwatch();
        swatch.Start();
        int Delay = 10;
        System.IO.StreamWriter sw = null;
        System.Net.Sockets.TcpClient tcpc = null;
        int bytes = -1;
        int is_file = 0;
        int is_att = 0;
        byte[] buffer;
        StringBuilder sb = new StringBuilder();
    //...
        string UID = "";
        string From;
        try
        {
    //...
    
                        if (ListMessage.IndexOf("filename=") > -1)
                        {
                            temp = ListMessage.Replace("filename=", "");
                            temp = temp.Trim();
                            file_name = temp;
                            is_file = 1; temp = ""; is_att = 1;
                        }
    //...
                            if (is_file == 1)
                            {
                                if (ListMessage.IndexOf("--") > -1)
                                    end_file = 1;
                                else
                                    temp = temp + ListMessage;
    
                            }
                            if (ListMessage == "")
                            {
                                is_file = 1;
                            }
    //...
        }
        catch (Exception ex)
        {
            rows.Add(new object[] { "ERROR:" });
            rows.Add(new object[] { ex.Message });
        }
        finally
        {
            if (sw != null)
            {
                sw.Close();
                sw.Dispose();
            }
            if (tcpc != null)
            {
                tcpc.Close();
            }
        }
        return rows;
    }

    Делфи головного мозга просвечивает в каждой строчке. Даже использованием 0/1 вместо булева типа не скрыть дельфишной сути.

    tucvbif, 17 Марта 2016

    Комментарии (26)
  11. Pascal / Говнокод #19569

    −49

    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
    CASE CMD[1] OF
    //...
    3005,3031,3032:
      begin
      if (varastype(cmd[2],varinteger)=1) THEN  exit;
      if (varastype(cmd[2],varinteger)=5)  THEN   result:=write_elem_spr_3031_3032(cmd);
      end;
    //...
    end;
    
    //...
    
    function TRDM_admin.write_elem_spr_3031_3032(cmd: OleVariant): OleVariant;
    begin
      if (varastype(cmd[1],varinteger)=3031) then
      begin
        if write_CS.fieldbyname('OLD_ID').AsVariant<>null then 
        s:=inttostr(write_CS.fieldbyname('OLD_ID').AsInteger) else 
        s:='null';
      end;
      if (varastype(cmd[1],varinteger)=3032) then
      begin
        if write_CS.fieldbyname('TEMPLATE_ROLE_ID').AsVariant<>null then
                      s:=inttostr(write_CS.fieldbyname('TEMPLATE_ROLE_ID').AsInteger) else
                      s:='null';
              if write_CS.fieldbyname('TYPE_DOLGN').AsVariant<>null then
                      s1:=inttostr(write_CS.fieldbyname('TYPE_DOLGN').AsInteger) else
                      s1:='null';
      end;
      if id_element>0 then // элемент существует - готовимся к записи
      begin
        if (varastype(cmd[1],varinteger)=3005) then
        begin
          write_Query.SQL.Add({запрос});
        end;
        if (varastype(cmd[1],varinteger)=3031) then
        begin
          write_Query.SQL.Add({запрос});
        end;
        if (varastype(cmd[1],varinteger)=3032) then
        begin
          write_Query.SQL.Add({запрос});
        end;
        //несколько строк малозначащего кода
      end else 
          begin
          if (varastype(cmd[1],varinteger)=3005) then
                  read_spr_Query.SelectSQL.Add('select gen_id(GEN_TAB_LPU_ID,1) from rdb$database');
          if (varastype(cmd[1],varinteger)=3031) then
                  read_spr_Query.SelectSQL.Add('select gen_id(GEN_TAB_STRUCT_ID,1) from rdb$database');
          if (varastype(cmd[1],varinteger)=3032) then
                  read_spr_Query.SelectSQL.Add('select gen_id(GEN_SPR_DOLGN_ID,1) from rdb$database');
          //Ещё несколько малозначащих строк
          if (varastype(cmd[1],varinteger)=3005) then
              write_Query.SQL.Add({запрос});
              if (varastype(cmd[1],varinteger)=3031) then
                  begin
                  write_Query.SQL.Add({запрос});
                  struct_lpu_id:=write_CS.fieldbyname('lpid').AsInteger;
                  end;
               if (varastype(cmd[1],varinteger)=3032) then
                  begin
                  write_Query.SQL.Add({запрос});
                  end;
          //Ещё несколько малозначащих строк
          end;
          if (varastype(cmd[1],varinteger)=3031) then
          begin
          //Ещё много строк
          end;
          write_IBT.Commit;
    end;

    Очевидно, объединяя сущности 3005, 3031 и 3032 в одном методе, автор хотел показать, что они взаимосвязаны.

    tucvbif, 03 Марта 2016

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