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

    −845

    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
    ALTER PROCEDURE [dbo].[SomeProc]       
          
    (      
     @TableName Varchar(500),      
     @Condition Varchar(1000)      
    )      
    --================================================================      
    -- Stored procedure:  SomeProc      
    -- Description: Returns rows depending on a dynamic condition      
    --      
    -- Inputs:        
    --      
    -- Returns:      
    --      Recordset 1: UserID, Name      
    --      
    --================================================================      
          
    AS      
    BEGIN      
    DECLARE @StrQuery varchar(1000)      
      
    If charindex('[Tablename]',@tablename) > 0  
    begin
     print 'new'
     SET @StrQuery = 'Select * From ' + @TableName + ' Where ' + @Condition   
     print @tablename
     print @condition
     print @strquery
    end
    else      
     SET @StrQuery = 'Select * From ' + @TableName + ' Where ' + @Condition + ' And [Tablename] = 1'      
          
    Exec(@StrQuery)      
    END

    Получили базу, полная таких вот процедур.

    guest, 17 Апреля 2009

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

    −849

    1. 1
    t.column :product_id, :integer

    t.column :order_id, :integer
    t.column :item_id, :string, :limit => 127
    t.column :product_id, :integer
    t.column :quantity, :integer
    t.column :item_description, :string
    t.column :unit_price, :decimal

    guest, 16 Апреля 2009

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

    −843

    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
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Vote](
    	[Id] [int] IDENTITY(1,1) NOT NULL,
    	[Name] [nvarchar](max) NULL,
    	[Visible] [bit] NOT NULL CONSTRAINT [DF_Vote_Visible]  DEFAULT ((0)),
     CONSTRAINT [PK_Vote] PRIMARY KEY CLUSTERED 
    (
    	[Id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    ALTER TABLE [dbo].[Vote]  WITH CHECK ADD  CONSTRAINT [FK_Vote_Vote] FOREIGN KEY([Id])
    REFERENCES [dbo].[Vote] ([Id])
    GO
    ALTER TABLE [dbo].[Vote] CHECK CONSTRAINT [FK_Vote_Vote]

    Вот прикол таблица с полем одновременно PK и FK вот засада!!!

    guest, 10 Апреля 2009

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

    −850

    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
    SELECT 
    lmd.Name AS DisciplineName,
    lmdv.ModDiscipVersionID,
    lmn.Name AS ModuleName,
    lm.ModuleID 
    FROM StudyContract sc 
    INNER JOIN PersonalLesson pl 
    ON sc.StudyContractID = pl.StudyContractID 
    INNER JOIN lst_Module lm 
    ON pl.ModuleID = lm.ModuleID 
    INNER JOIN lst_ModuleName lmn 
    ON lm.ModuleNameID = lmn.ModuleNameID 
    INNER JOIN lst_ModDiscipVersion lmdv 
    ON lm.ModDiscipVersionID = lmdv.ModDiscipVersionID 
    INNER JOIN lst_ModDiscip lmd 
    ON lmdv.ModDiscipID = lmd.ModDiscipID 
    INNER JOIN Student s 
    ON sc.StudentID = s.StudentID 
    INNER JOIN TrainingProduct_Lesson tpl 
    ON tpl.PersonalLessonID = pl.PersonalLessonID 
    INNER JOIN TrainingProduct tp 
    ON tp.TPID = tpl.TPID 
    WHERE sc.ContractNumber = '050000000000' 
    AND s.Surname = 'к' 
    AND 
    (
    tp.TPKindID=1 OR 
    tp.TPKindID=3 OR 
    tp.TPKindID=8 OR 
    tp.TPKindID=12 OR 
    tp.TPKindID=15 OR 
    tp.TPKindID=52 OR 
    tp.TPKindID=58 OR 
    tp.TPKindID=94 OR 
    tp.TPKindID=6 OR 
    tp.TPKindID=39 OR 
    tp.TPKindID=80 OR 
    tp.TPKindID=40 OR 
    tp.TPKindID=74 OR 
    tp.TPKindID=17 OR 
    tp.TPKindID=33
    )
    GROUP BY lmd.Name,lmdv.ModDiscipVersionID,lmn.Name,lm.ModuleID

    Говнокодеры Современной Гуманитарной Академии не подозревают о такой вещи как tp.TPKindID IN (1;3;...;33)

    guest, 31 Марта 2009

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

    −872.4

    1. 1
    SELECT `table`.`id`, `table`.`name`, if(LENGTH(`table`.`subj`)>0,NULL,NULL) ...

    guest, 23 Марта 2009

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

    −160.8

    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
    begin	-- воркэраунд для дерьмовой идеи хранить ROWID отмеченных записей в таблице XXX
    					-- так делать нельзя, ROWID вообще нельзя для этого использовать! Какой даун до этого додумался...
    					-- интересно посмотреть как эта херня работает когда одной формой одновременно пользуются несколько
    					-- юзеров. Бля слов нет одни эмоции. Один говнопрограммер додумался, теперь остальные должны
    					-- использовать этот говнокод! Хранить помеченные строки в таблице БД, чтобы потом их использовать
    					-- в других формах, я в аКуе!! Быбло система бля, быдлониточек и быдловеревочек! Сцуко, добавить к
    					-- каждой таблице нормальные синтетические первичные ключи, а не эту порнографию религия не позволяет?
    					-- Сдалать коллекцию, захуячить в нее первичные ключи помеченных строк и передавать ее в качестве параметра
    					-- нивъебаЦЦа какая охуенна сложная задача... Нет-же, хуярим это унылое говно везде. Хочешь заюзать
    					-- какую-нибудь функцию для массовой обработки либо хуярь это унылое говницо, либо пиши свою функцию
    					-- со своими шлюхами и блэкджеком! Сцуки, пойду дальше программить..
    	          select ROWID
    	          into tmp
    	          from YYY
             		where PKID = :YYY.PKID;
             		insert into xxx(aaa, bbb)
             		values (tmp, new_mrk);
         		end;

    Нашел в коде такой коммент :)
    Видимо реализация задело кого-то за живое :))

    guest, 17 Марта 2009

    Комментарии (7)
  7. SQL / Говнокод #701

    −868

    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
    CREATE OR REPLACE VIEW my_schema.my_view AS
    SELECT 
       TO_NUMBER (c.payment_term_code) ID, 
       c.payment_term_code sap_code, c.payment_term_name longname,
              c.short_name shortname, c.comment_line comments, c.cust_relevant, c.vend_relevant, c.active active,
              c.updated_by created_by, c.updated_by updated_by, c.updated_on created_on, c.updated_on updated_on, 1 txn_ver
         FROM my_schema.my_table c
        WHERE (    LENGTH (c.payment_term_code) = 1
               AND SUBSTR (c.payment_term_code, 1, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
              )
           OR (    LENGTH (c.payment_term_code) = 2
               AND SUBSTR (c.payment_term_code, 1, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 2, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
              )
           OR (    LENGTH (c.payment_term_code) = 3
               AND SUBSTR (c.payment_term_code, 1, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 2, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 3, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
              )
           OR (    LENGTH (c.payment_term_code) = 4
               AND SUBSTR (c.payment_term_code, 1, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 2, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 3, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 4, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
              )
           OR (    LENGTH (c.payment_term_code) = 5
               AND SUBSTR (c.payment_term_code, 1, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 2, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 3, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 4, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
               AND SUBSTR (c.payment_term_code, 5, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
              )
       UNION
       SELECT ID, sap_code, longname, shortname, comments, 'Y', 'Y', active, created_by, updated_by, created_on, updated_on, 1
         FROM my_schema.my_other_table) tt

    Вот так в 30 строк пиндосы защищаются от проникновения буковков в TO_NUMBER()

    guest, 12 Марта 2009

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

    −870.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    select 
    --
    (case
        when (sum(distinct sub.est_cost) - sum(distinct sub.act_cost)) > 0 then
          (sum(distinct sub.est_cost) - sum(distinct sub.act_cost))
        when (sum(distinct sub.est_cost) - sum(distinct sub.act_cost)) < 0 then
          (sum(distinct sub.est_cost) - sum(distinct sub.act_cost))
        else
           0
    end)
    --
    from blablabla

    Не пускайте бразильских футболистов к компьютеру!

    guest, 12 Марта 2009

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

    −873.4

    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
    SELECT BE.SORT as SORT,BE.ID as ID,DATE_FORMAT(BE.TIMESTAMP_X, '%d.%m.%Y %H:%i:%s') as TIMESTAMP_X,BE.MODIFIED_BY as
     MODIFIED_BY,DATE_FORMAT(BE.DATE_CREATE, '%d.%m.%Y %H:%i:%s') as DATE_CREATE,BE.CREATED_BY as CREATED_BY,BE.IBLOCK_ID as
     IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,BE.ACTIVE as ACTIVE,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_FROM)>0,
     DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as ACTIVE_FROM,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_TO)>0, DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y')) as
     ACTIVE_TO,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'),
     DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as DATE_ACTIVE_FROM,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_TO)>0, DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y')) as DATE_ACTIVE_TO,BE.NAME as NAME,BE.PREVIEW_PICTURE as 
     PREVIEW_PICTURE,BE.PREVIEW_TEXT as PREVIEW_TEXT,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.DETAIL_PICTURE as
     DETAIL_PICTURE,BE.DETAIL_TEXT as DETAIL_TEXT,BE.DETAIL_TEXT_TYPE as DETAIL_TEXT_TYPE,BE.SEARCHABLE_CONTENT as
     SEARCHABLE_CONTENT,BE.WF_STATUS_ID as WF_STATUS_ID,BE.WF_PARENT_ELEMENT_ID as WF_PARENT_ELEMENT_ID,BE.WF_NEW as WF_NEW,if (BE.WF_DATE_LOCK is null, 'green', if(DATE_ADD(BE.WF_DATE_LOCK, interval 60 MINUTE)<now(), 'green', if(BE.WF_LOCKED_BY=0, 'yellow', 'red'))) as LOCK_STATUS,BE.WF_LOCKED_BY as WF_LOCKED_BY,DATE_FORMAT(BE.WF_DATE_LOCK, '%d.%m.%Y %H:%i:%s') as
     WF_DATE_LOCK,BE.WF_COMMENTS as WF_COMMENTS,BE.IN_SECTIONS as IN_SECTIONS,BE.SHOW_COUNTER as SHOW_COUNTER,BE.SHOW_COUNTER_START as
     SHOW_COUNTER_START,BE.CODE as CODE,BE.TAGS as TAGS,BE.XML_ID as XML_ID,BE.XML_ID as EXTERNAL_ID,BE.TMP_ID as
     TMP_ID,concat('(',U.LOGIN,') ',ifnull(U.NAME,''),' ',ifnull(U.LAST_NAME,'')) as USER_NAME,concat('(',UL.LOGIN,') ',ifnull(UL.NAME,''),' ',ifnull(UL.LAST_NAME,'')) as LOCKED_USER_NAME,concat('(',UC.LOGIN,') ',ifnull(UC.NAME,''),' ',ifnull(UC.LAST_NAME,'')) as CREATED_USER_NAME,L.DIR as LANG_DIR,B.LID as LID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as
     IBLOCK_CODE,B.NAME as IBLOCK_NAME,B.XML_ID as IBLOCK_EXTERNAL_ID,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,B.LIST_PAGE_URL as
     LIST_PAGE_URL FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID INNER JOIN b_iblock_property FP1 ON FP1.IBLOCK_ID=B.ID AND FP1.CODE='DAY' INNER JOIN b_iblock_element_property FPV1 ON
     FP1.ID=FPV1.IBLOCK_PROPERTY_ID AND FPV1.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property_enum FPEN1 ON FP1.ID = FPEN1.PROPERTY_ID AND FPV1.VALUE_ENUM=FPEN1.ID INNER JOIN b_iblock_property FP2 ON FP2.IBLOCK_ID=B.ID AND FP2.CODE='MONTH' INNER JOIN
     b_iblock_element_property FPV2 ON FP2.ID=FPV2.IBLOCK_PROPERTY_ID AND FPV2.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property_enum FPEN2 ON FP2.ID = FPEN2.PROPERTY_ID AND FPV2.VALUE_ENUM=FPEN2.ID LEFT JOIN b_user U ON U.ID=BE.MODIFIED_BY LEFT JOIN b_user UL ON
     UL.ID=BE.WF_LOCKED_BY LEFT JOIN b_user UC ON UC.ID=BE.CREATED_BY WHERE 1=1 AND B.ID IN (0,72) AND ( (BE.WF_STATUS_ID=1 AND
     BE.WF_PARENT_ELEMENT_ID IS NULL) ) AND ((((BE.IBLOCK_ID = '72')))) AND (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND
     (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND ((((BE.ACTIVE='Y')))) AND (BE.IN_SECTIONS ='N' ) AND ((((FPEN1.VALUE LIKE
     '-1')))) AND ((((FPEN2.VALUE LIKE 'Март')))) ORDER BY BE.SORT asc

    Вот что бывает когда человека заменет скрипт, причем написаные тупым человеком, ORM рулить.

    guest, 12 Марта 2009

    Комментарии (12)
  10. SQL / Говнокод #698

    −852.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    UPDATE DKNDRECTMPL SET
        TARGET = IIF(OPERATION IN (0, 1, 3, 4, 5), 0, 1),
        ACT = CASE OPERATION
              WHEN 0 THEN 0
              WHEN 1 THEN 1
          WHEN 2 THEN 1
          WHEN 3 THEN 1
          WHEN 4 THEN 1
          WHEN 5 THEN 3
              END;

    Это Firebird если чё.

    guest, 12 Марта 2009

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