Зарегистрироваться | Поиск |
Результаты опроса: Как лучше оформлять несколько условий в select where? | |||
Я предпочитаю указывать операторы после условных выражений (Вариант 1) | 13 | 25.49% | |
Я предпочитаю указывать операторы до условных выражений (Вариант 2) | 35 | 68.63% | |
Использую комбинированный способ (написал в теме) | 3 | 5.88% | |
Нет предпочтений: иногда делаю так, иногда иначе | 0 | 0% | |
Не знаю/Мне все равно | 0 | 0% | |
Голосовавшие: 51. Вы ещё не голосовали в этом опросе |
|
Опции темы |
|
24.06.2011, 20:43 | #1 |
Участник
|
Как лучше оформлять несколько условий в select where? Повторная попытка
Начало здесь Как лучше оформлять несколько условий в select where?
Прошу переголосовать с измененными формулировками. В коде часто встречаются select c несколькими условиями (условными выражениями). Как лучше оформлять несколько условий в select where? Вариант 1. (операторы после условия) X++: select firstonly paymentTrans where paymentTrans.AccountNum == factureJour.CustVendInvoiceAccount && paymentTrans.Voucher == factureJour.Voucher && paymentTrans.CurrencyCode == factureJour.CurrencyCode && paymentTrans.PrepaymentFactureId_W == factureJour.FactureId && paymentTrans.Prepayment == NoYes::Yes; X++: select firstonly paymentTrans where paymentTrans.AccountNum == factureJour.CustVendInvoiceAccount && paymentTrans.Voucher == factureJour.Voucher && paymentTrans.CurrencyCode == factureJour.CurrencyCode && paymentTrans.PrepaymentFactureId_W == factureJour.FactureId && paymentTrans.Prepayment == NoYes::Yes; Перед условием или после условия? Почему? А в более сложны случаях? Например, X++: while select bankClientPayment_RU where bankClientPayment_RU.RContractAccount notexists join RContractTable where ( ( RContractTable.RContractPartnerType == RContractPartnerType::Cust && BankClientPayment_RU.PartnerType == ModuleCustVend::Cust ) || ( RContractTable.RContractPartnerType == RContractPartnerType::Vend && BankClientPayment_RU.PartnerType == ModuleCustVend::Vend ) ) && RContractTable.RContractAccount == bankClientPayment_RU.RContractAccount && RContractTable.RContractCode == bankClientPayment_RU.RContractCode |
|
24.06.2011, 20:50 | #2 |
Участник
|
предыдущее достаточно интересное обсуждение здесь Как лучше оформлять несколько условий в select where?
по наводке vanokh процитирую Best Practice ax3.0 ax2009 |
|
24.06.2011, 22:27 | #3 |
Участник
|
Цитата:
Цитата:
- Вы хотите курить, как я вижу? - неожиданно обратился к Бездомному неизвестный, - вы какие предпочитаете?
- А у вас разные, что ли, есть? - мрачно спросил поэт, у которого папиросы кончились. - Какие предпочитаете? - повторил неизвестный. - Ну, "Нашу марку", - злобно ответил Бездомный. Незнакомец немедленно вытащил из кармана портсигар и предложил его Бездомному: - "Наша марка". |
|
24.06.2011, 22:49 | #4 |
Участник
|
ни с чем. давно хотел спросить. правил очередной запрос - спросил
|
|
25.06.2011, 11:18 | #5 |
Участник
|
Операторы до условия.
В самом начале знакомства с аксаптой увидел такую запись. Мне показалась более наглядной. Теперь уже привык и не задумываюсь. Со сложными условиями примерно так. X++: while select bankClientPayment_RU where bankClientPayment_RU.RContractAccount notexists join RContractTable where ( ( RConractTable.RContractPartnerType == RContractPartnerType::Cust && BankClientPayment_RU.PartnerType == ModuleCustVend::Cust ) || ( RContractTable.RContractPartnerType == RContractPartnerType::Vend && BankClientPayment_RU.PartnerType == ModuleCustVend::Vend )) && RContractTable.RContractAccount == bankClientPayment_RU.RContractAccount && RContractTable.RContractCode == bankClientPayment_RU.RContractCode
__________________
If it ain't broke, take it apart and find out why (с) |
|
25.06.2011, 12:05 | #6 |
Moderator
|
Предпочитаю операторы до условия, в случае сложных условий, внутри этих условий переношу логические операторы после условий, если уж совсем сложные условия то еще и скобки стараюсь разносить.
X++: select firstonly paymentTrans where paymentTrans.AccountNum == factureJour.CustVendInvoiceAccount && paymentTrans.Voucher == factureJour.Voucher && paymentTrans.Prepayment == NoYes::Yes && (paymentTrans.CurrencyCode == "UAH" || paymentTrans.CurrencyCode == "USD");
__________________
С уважением, kvan. Последний раз редактировалось kvan; 25.06.2011 в 12:09. |
|
25.06.2011, 23:47 | #7 |
Участник
|
Ставлю "До", тк если нужно строку потом закомментировать, то проще и аккуратней поставить "//" в начале строки, чем комметировать оператор строкой выше, а потом комментировать строку условия
|
|
26.06.2011, 18:36 | #8 |
Участник
|
Тоже пишу до условных выражений. Причина та же, что и у других - легкость добавления и комментирования. Кроме того, люблю выравнивать части кода, а если делать операторы в конце строки, то выравнивание не такое красивое, особенно, если строка длинная - бывает, что на небольшом мониторе просто не видно как связаны условия - операторы выходят слишком далеко вправо. Если же они слева, то сразу видно как связаны строки оператора друг с другом.
|
|
26.06.2011, 19:10 | #9 |
Участник
|
Указываю всегда после. Оно может не очень удобно, но БестПрактикс. Если каждый будет лепить в коде так как ему удобно, то сопровождать такой код будет совсем не весело.
Кстати, можно устроить еще один опрос, В какой степени программеры Акс следуют рекомендациям БестПрактикс? |
|
26.06.2011, 22:58 | #10 |
Участник
|
ага, только устаревший годков эдак на несколько...
Цитата:
Цитата:
|
|
27.06.2011, 13:54 | #11 |
Участник
|
соотношение не слишком изменилось
|
|