20.03.2019, 20:12 | #1 |
Участник
|
alirazazaidi: In keyword While select statement X++ Dynamics 365 for finance and operations
Источник: https://www.tech.alirazazaidi.com/in...nd-operations/
============== Hi Today I found very interesting post here , where we can use “In” keyword for While select or Select statement. in will be enum based. SalesTable salesTable; container con = [SalesType::Sales, SalesType::ReturnItem, SalesType::Subscription]; while select * from salesTable where salesTable.SalesType in con { Info(salesTable.SalesId); } reference : D365/AX7:SQL IN Operator In X++ Where Clause (Enum Fields Only) Источник: https://www.tech.alirazazaidi.com/in...nd-operations/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
22.03.2019, 05:42 | #2 |
Мрачный тип
|
Какой только дурью не маются люди, лишь бы не писать запрос через Query* классы
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
22.03.2019, 06:22 | #3 |
Участник
|
MS его добавил чтобы можно было расширять where, легче его унести в контейнер и в отдельный метод чем переписывать трехстраничный select на query. Да и квери типа медленнее, так что если будут переписывать то на SysDa, когда все детские баги в нем починят.
|
|
22.03.2019, 07:00 | #4 |
Мрачный тип
|
Где такие звери водятся ?
Похожее видел только в бюджетном контроле/обработке в 2012, но это был хардкод на X++ текста исходников той части бизнес-логики, что перенесена на хранимые процедуры. В чистом X++ - исполнении такого ужаса не встречамши ...
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
22.03.2019, 09:08 | #5 |
Участник
|
дык, не надо писать трехстраничные query!
создайте объект в АОТ, а в коде напишите пару строчек, которые подставляют нужные в рантайме параметры X++: Query q = new Query(querystr(mySuperAOTQuery)); SysQuery::findOrCreateRange(q.datasource(1), fieldnum(....)).value(...); |
|
22.03.2019, 20:50 | #6 |
Участник
|
Повторюсь, МС утверждает, что query ощутимо медленнее чем select, любопытные могут проверить и сказать насколько это правда. Даже если select простой и вам нужно расширить where , то вероятно наложать с in меньше чем с переписыванием всего на query.
|
|
22.03.2019, 21:09 | #7 |
Участник
|
Если ты думаешь, что этими словами защитил МС, то ошибаешься.
|
|
22.03.2019, 23:42 | #8 |
Banned
|
А от кого нужно защищать? От любителей считать ангелов на острие иглы?
|
|
23.03.2019, 00:36 | #9 |
Участник
|
|
|
23.03.2019, 09:49 | #10 |
Moderator
|
Цитата:
Может стоило query починить и слегка расширить, а для разных сложных обновлений придумать какой-то новый механизм... |
|
23.03.2019, 10:41 | #11 |
Участник
|
ИМХО это все ради титулов, за переписывание старого их дают хуже чем за создание нового. В итоге SysDa воткнут в паре мест да и все. Это как RunBaseBatch vs SysOperational. Новый фреймворк написали, но старые классы никто переписывать не бежит. И тестировать ничего не надо если ничего не трогать
Последний раз редактировалось skuull; 23.03.2019 в 10:44. |
|
|
За это сообщение автора поблагодарили: trud (1), Stitch_MS (1). |
|
|