03.07.2007, 13:02 | #1 |
Developer
|
Ошибка при передаче курсора для обновления с клиента на сервер
Ув. форумчане.
Подскажите, пожалуйста, можно ли передать курсор для обновления (например такой - select firstonly forupdate Table) с клиента на сервер? Мои эксперименты ни к чему хорошему не привели. Аксапта падает с сообщением "Сессия работы на сервере Navision Axapta не может быть продолжена из-за возникновения критической ошибки. Непоправимая ошибка возникла в процессе обработки сервером приложения последнего запроса. Попытайтесь подключиться к системе снова и повторить операцию. Если ошибка повторяется, обратитесь к вашему администратору" на строке "return Table" в функции, которая исполняется на клиенте и вызывается на стороне сервера (аоса). Может я упустил/забыл что-то из документации? Вопрос задаю ради интереса , на практике операции по выборке и обновлению таблиц организованы на стороне сервера. В приложении - класс, запуск которого приводит к "падению" аксапты при "return Table" в функции clientFunc(). Ax 3 SP2, MS SQL Server 2000 |
|
03.07.2007, 13:13 | #2 |
Участник
|
Если указать условие выборки по первичному ключу, то все будет ок. Иначе же, действительно падает.
DAX 3.0 SP5 KR2 Отрабатывает в первом случае, если используется кэш (а он работает по первичному ключу). то есть если дописать перед выборкой disableCache(true), то тоже будет падать. А вообще конечно извратно на клиенте выбирать запись (при этом бегая на сервер за этой самой записью), чтобы потом ее передать на сервер |
|
|
За это сообщение автора поблагодарили: vallys (1). |
03.07.2007, 13:17 | #3 |
Developer
|
Цитата:
Сообщение от kashperuk
Если указать условие выборки по первичному ключу, то все будет ок. Иначе же, действительно падает.
DAX 3.0 SP5 KR2 Отрабатывает в первом случае, если используется кэш (а он работает по первичному ключу). то есть если дописать перед выборкой disableCache(true), то тоже будет падать. Вопрос снят. Последний раз редактировалось vallys; 03.07.2007 в 13:21. |
|
03.07.2007, 13:24 | #4 |
Участник
|
Можно сделать так - объявить табличную переменную на серверной стороне и передать ее в метод на клиенте. На клиенте делать выборку по этой переменной и из метода вернуть ее.
Сильное подозрение, что при возврате из метода на клиенте табличная переменная и связанные с ней данные удаляются. Но ссылка на сервер приходит. И при попытке обращения к ней все рушится.
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: vallys (1). |
03.07.2007, 13:32 | #5 |
Developer
|
Цитата:
Сообщение от AndyD
Можно сделать так - объявить табличную переменную на серверной стороне и передать ее в метод на клиенте. На клиенте делать выборку по этой переменной и из метода вернуть ее.
Сильное подозрение, что при возврате из метода на клиенте табличная переменная и связанные с ней данные удаляются. Но ссылка на сервер приходит. И при попытке обращения к ней все рушится. В приложении измененный клас первого поста. При таком подходе все работает. Спасибо. Последний раз редактировалось vallys; 03.07.2007 в 15:21. |
|
Теги |
ax3.0 |
|
|