- 1
- 2
dsovpr = IIf(DateTimePicker2.Checked = True, " '" & CDate(Mid(DateTimePicker2.Value, 1, 10)) & "'", "null")
god = Year(dsovpr)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 2
−130
dsovpr = IIf(DateTimePicker2.Checked = True, " '" & CDate(Mid(DateTimePicker2.Value, 1, 10)) & "'", "null")
god = Year(dsovpr)
Ну вы поняли, да? Мой "коллега" берет дату из датаТаймПикера, неявно преобразует её в строку и отрезает время. А сразу после этого он пытается эту строку неявно преобразовать в дату и выдернуть оттуда год(уж не знаю чем ему Mid во второй раз не угодил).
Ах да, весь этот зоопарк нифига не работает, потому что он заключает дату в одинарные кавычки для того чтобы сохранить её в базе в виде строки(!). И, естественно, на второй строке вылетает исключение от которого все крашится, потому что использовать try catch ему, видимо, не позволяет религия
−860
SELECT
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D1 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D1 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D2 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D2 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D3 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D3 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D4 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D4 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D5 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D5 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D6 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D6 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D7 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D7 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D8 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D8 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D9 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D9 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D10 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D10 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D11 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D11 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D12 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D12 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D13 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D13 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D14 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D14 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D15 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D15 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D16 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D16 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D17 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D17 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D18 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D18 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D19 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D19 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D20 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D20 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D21 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D21 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D22 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D22 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D23 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D23 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D24 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D24 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D25 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D25 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D26 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D26 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D27 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D27 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D28 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D28 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D29 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D29 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D30 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D30 = S_KODGR.K_KOD)) +
iif(isnull((SELECT H_ALL FROM S_KODGR WHERE GR.D31 = S_KODGR.K_KOD)),0,(SELECT H_ALL FROM S_KODGR WHERE GR.D31 = S_KODGR.K_KOD)) AS H_ALL,
GR.ID_GRAF
FROM GRAF_RAB AS GR
WHERE GR.GOD = 2014
AND GR.K_T_GR = 1
1) Говеная архитектура БД: В базе месяц лежит в одной таблице с полями D1, D2, D3 и т.д. Потому нельзя просто взять и одним запросом связать две таблицы, а приходится делать 31 подзапрос
2) Говеня БД: используется access, который не может и шагу ступить без vba. В итоге функция nz, написанная на vba просто не видна OleDbDataAdapter-у и приходится использовать iif. И 31 подзапрос превращается в 62
3) Надо получить значения из двух полей. 62 подзапроса превращаются в 124(Здесь только одно поле. В проекте код в 2 раза длиннее)