11.10.2004, 12:57 | #1 |
----------------
|
Аксапта 3.0 SP 3 падает
Есть такой запросик, при выполнении которого на тонком клиенте в 3х звенке Аксапта падает
PHP код:
Аксапта 3.0 sp 3. Это проблема наша или общая? и какие методы решения существуют? |
|
11.10.2004, 13:03 | #2 |
NavAx
|
судя по всему - общая.
у меня точно так же валится
__________________
И все они создания природы... |
|
11.10.2004, 13:22 | #3 |
Участник
|
А так не валится:
X++: select RecId from taxOnItem where taxOnItem.TaxItemGroup == 'НДС18' // Есть такой join RecId from taxGroupData where taxGroupData.TaxCode == taxOnItem.TaxCode && taxGroupData.TaxGroup == 'Нет Такого' join RecId from taxTable where taxTable.TaxCode == taxGroupData.TaxCode; |
|
11.10.2004, 14:17 | #4 |
----------------
|
to AlexUnik: не помогло
Пока я вижу 2 решения 1. Перенести метод на сервер 2. Разбить while на 2 (исходный пример - кусок от while) Осталось только нати все места с подобными запросами |
|
11.10.2004, 14:38 | #5 |
Участник
|
Странно. У меня первая вариация запроса, которую Вы предложили тоже валится, но вторая проходит без проблем. (Axapta 3.0 SP3). Быть может, Вы что-то не учли? Попробуйте так:
X++: static void JobRec(Args _args) { taxOnItem taxOnItem; taxGroupData taxGroupData; taxTable taxTable; select RecId from taxOnItem where taxOnItem.TaxItemGroup == 'НДС18' join RecId from taxGroupData where taxGroupData.TaxCode == taxOnItem.TaxCode join RecId from taxTable where taxTable.TaxCode == taxGroupData.TaxCode; { info(strfmt("%1", taxOnItem.TaxCode)); } } |
|
11.10.2004, 15:03 | #6 |
----------------
|
Учел, все что мог
PHP код:
|
|
11.10.2004, 15:33 | #7 |
Участник
|
Скорее всего, ошибка возникает из-за отсутствия кода 'НДС18' в TaxItemGroup. Попробуйте составить запрос, заведомо возвращающий результаты.
|
|
11.10.2004, 16:14 | #8 |
Модератор
|
А так?
PHP код:
|
|
12.10.2004, 16:10 | #9 |
Участник
|
Кстати, видимо по теме. У меня рубит с ног Аксапту следующий, как я понимаю аналогичный, код:
PHP код:
Лечил соответственно тем что проставлял это поле - ТОГДА ВСЁ РАБОТАЕТ. |
|
12.10.2004, 16:35 | #10 |
----------------
|
Хорошо быть здоровым и богатым
Согласитесь, если работоспособность клиентского приложения зависит от того какие параметры попали в запрос, то надо что-то делать с этим приложением.
За все варианты спасибо, но ничего не работает. Аксапта падала, падает и будет падать. |
|
12.10.2004, 16:41 | #11 |
Участник
|
Слушай, ну раз так стабильно падает именно на таком запросе, то сделай вместо одного While несколько вложенных. Ну, что-то вроде.
while select Tab1 { while select Tab2 where tab2.id == tab1.id { ... } } Да, работать будет медленнее. Но зато падать перестанет! |
|
12.10.2004, 16:55 | #12 |
Модератор
|
Re: Хорошо быть здоровым и богатым
Цитата:
Изначально опубликовано Wamr
Согласитесь, если работоспособность клиентского приложения зависит от того какие параметры попали в запрос, то надо что-то делать с этим приложением. За все варианты спасибо, но ничего не работает. Аксапта падала, падает и будет падать. по крайней мере, изменил CacheLookup на FoundAndEmpty у всех трех (времени на эксперименты нет) - заработало Спасибо, конечно, разработчикам - сэкономили один запрос к серверу БД Wamr, у Вас есть возможность скинуть эту багу в сервисную систему или партнеру? |
|
12.10.2004, 17:03 | #13 |
----------------
|
Все эти таблицы полностью в кэше (EntireTable), если сделать первый while по объединению taxOnItem и taxGroupData, то время выполнения вообще практически не изменится. Но дело в том, что в 2.5 это был очень популярный запрос, а в 3.0 его везде вычистили, что наводит на мысль, что кто-то знал об этой фиче.
К тому же, сам факт настораживает... при каких еще запросах мы получим такой же эффект? ----------- to Vadik Теоретически есть (партнеру). Но как это сделать на практике не знаю (никогда не делал) |
|
12.10.2004, 17:35 | #14 |
Модератор
|
Цитата:
Изначально опубликовано Wamr
Все эти таблицы полностью в кэше (EntireTable), если сделать первый while по объединению taxOnItem и taxGroupData, то время выполнения вообще практически не изменится. |
|