15.01.2002, 19:10 | #1 |
сибиряк
|
While Select .. ?
Кто-нибудь может объяснить такую ошибку:
<pre>InventSum iS; While Select iS Where iS.PostedQty != 0 && iS.PostedValue != 0 && iS.Closed == NoYes::No && ((iS.PostedQty - iS.Deducted) != 0) { ... }</pre> или так, <pre>While Select iS Where iS.PostedQty != 0 && iS.PostedValue != 0 && iS.Closed == NoYes::No && (abs(iS.PostedQty) != abs(iS.Received)) { ... }</pre> Компилируем, получаем - <font color=red> Некорректное использование выражения Where</font> Чего-то не понимаю?
__________________
С уважением, Вячеслав. |
|
15.01.2002, 19:32 | #2 |
Продавец игрушек
|
"while select" имеет тот же синтаксис, что и "select".
Вам следует писать что-то вроде: <pre> InventSum iS; While Select <b>* from</b> iS Where .... { ... }</pre>
__________________
С уважением, Роман Кошелев. |
|
15.01.2002, 20:57 | #3 |
Участник
|
Re: While Select .. ?
Цитата:
Изначально опубликовано slava
Кто-нибудь может объяснить такую ошибку: <pre>InventSum iS; While Select iS Where iS.PostedQty != 0 && iS.PostedValue != 0 && iS.Closed == NoYes::No && ((iS.PostedQty - iS.Deducted) != 0) { ... }</pre> .... В первом случае проблема решается так: iS.PostedQty != iS.Deducted В других случаях тоже можно решить проблему включив if в тело while: While Select iS Where iS.PostedQty != 0 && iS.PostedValue != 0 && iS.Closed == NoYes::No { if (iS.PostedQty - iS.Deducted != 0) ... } |
|
16.01.2002, 06:17 | #4 |
сибиряк
|
Почему?
Роману Кошелеву
Спасибо , но изменение синтаксиса не помогает Тогда может кто-нибудь знает - это фича такая, или ошибка. Дело в том, что не хочу я тащить if'ы в конструкцию While Select. Это некрасиво
__________________
С уважением, Вячеслав. |
|
16.01.2002, 12:04 | #5 |
Участник
|
Re: Почему?
Цитата:
Изначально опубликовано slava
Тогда может кто-нибудь знает - это фича такая, или ошибка. Дело в том, что не хочу я тащить if'ы в конструкцию While Select. Это некрасиво Красиво, некрасиво а if использовать придется. Иначе проблему не решишь. |
|
16.01.2002, 12:38 | #6 |
Продавец игрушек
|
Можно попробовать исрользовать display-методы. Я сейчас не за Аксакптой, как только смогу, проверю.
<pre>display int PD() { return this.PostedQty - this.Deducted; }</pre> см. http://www.axforum.info/forums/searc...rder=ascending
__________________
С уважением, Роман Кошелев. |
|
16.01.2002, 13:15 | #7 |
сибиряк
|
Пробовал, не помогает
Я уже пробовал:
например: While Select ... inventSum.costPricePcs() == .. та же ошибка Наверное это действительно недоработка преобразователя X++ select'а в SQL'евский. Если так, то очень жаль.
__________________
С уважением, Вячеслав. |
|
17.01.2002, 13:08 | #8 |
Administrator
|
Re: Re: Почему?
Цитата:
Изначально опубликовано lm
Согласно документации, синтаксис SQL запросов в Axapta ограничен... Вот так-то.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|