Зарегистрироваться | Сообщения за день | Поиск | Все разделы прочитаны |
Результаты опроса: Как лучше оформлять несколько условий в select where? | |||
Я предпочитаю указывать операторы после условных выражений (Вариант 1) |
![]() ![]() ![]() ![]() |
13 | 25.49% |
Я предпочитаю указывать операторы до условных выражений (Вариант 2) |
![]() ![]() ![]() ![]() |
35 | 68.63% |
Использую комбинированный способ (написал в теме) |
![]() ![]() ![]() ![]() |
3 | 5.88% |
Нет предпочтений: иногда делаю так, иногда иначе |
![]() ![]() ![]() ![]() |
0 | 0% |
Не знаю/Мне все равно |
![]() ![]() ![]() ![]() |
0 | 0% |
Голосовавшие: 51. Вы ещё не голосовали в этом опросе |
|
Опции темы |
![]() |
#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 |
|
![]() |
#2 |
Участник
|
предыдущее достаточно интересное обсуждение здесь Как лучше оформлять несколько условий в select where?
по наводке vanokh процитирую Best Practice ax3.0 ax2009 |
|
![]() |
#3 |
Участник
|
Цитата:
Цитата:
- Вы хотите курить, как я вижу? - неожиданно обратился к Бездомному неизвестный, - вы какие предпочитаете?
- А у вас разные, что ли, есть? - мрачно спросил поэт, у которого папиросы кончились. - Какие предпочитаете? - повторил неизвестный. - Ну, "Нашу марку", - злобно ответил Бездомный. Незнакомец немедленно вытащил из кармана портсигар и предложил его Бездомному: - "Наша марка". ![]() |
|
![]() |
#4 |
Участник
|
Цитата:
![]() |
|
![]() |
#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 (с) |
|
![]() |
#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. |
|
![]() |
#7 |
Участник
|
Ставлю "До", тк если нужно строку потом закомментировать, то проще и аккуратней поставить "//" в начале строки, чем комметировать оператор строкой выше, а потом комментировать строку условия
|
|
![]() |
#8 |
Участник
|
Тоже пишу до условных выражений. Причина та же, что и у других - легкость добавления и комментирования. Кроме того, люблю выравнивать части кода, а если делать операторы в конце строки, то выравнивание не такое красивое, особенно, если строка длинная - бывает, что на небольшом мониторе просто не видно как связаны условия - операторы выходят слишком далеко вправо. Если же они слева, то сразу видно как связаны строки оператора друг с другом.
|
|
![]() |
#9 |
Участник
|
Указываю всегда после. Оно может не очень удобно, но БестПрактикс. Если каждый будет лепить в коде так как ему удобно, то сопровождать такой код будет совсем не весело.
Кстати, можно устроить еще один опрос, В какой степени программеры Акс следуют рекомендациям БестПрактикс? |
|
![]() |
#10 |
Участник
|
ага, только устаревший годков эдак на несколько...
Цитата:
Цитата:
|
|
![]() |
#11 |
Участник
|
соотношение не слишком изменилось
|
|
Теги |
select, как правильно, оформление кода, условия |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|