|
![]() |
#1 |
Участник
|
Создаётся ощущение, что передача курсора на сервер не всегда происходит. Т.е. у сервера существует своя серверная версия курсора, которая, как оказывается, не всегда (или точнее не целиком) синхронизируется с клиенской. А именно не синхронизируется orig-часть курсора!
т.е. xTable.clear() - полностью стирает только клиенстскую версию, а на сервере курсор остаётся со старым orig. Для эксперимента можно попробовать вручную стереть серверный orig X++: server static void serverClear(xTable _xTable) { _xTable.clear(); } X++: ... for(i = 1; i <= 5; i++) { xTable.clear(); xTable::serverClear(xTable); // <<----------- xTable.Qty = i; diff = xTable::diff(xTable); info(strFmt("%1 %2", diff, xTable.Qty - xTable.orig().Qty)); xTable.insert(); } 0,00 1,00 2,00 2,00 3,00 3,00 4,00 4,00 5,00 5,00 P.S.: Проверил, в обратную сторону курсоры синхронизируются корректно. Т.е. clear(), вызванный на сервере стирает и клиенский orig() тоже. Последний раз редактировалось S.Kuskov; 23.03.2010 в 13:48. |
|
|
За это сообщение автора поблагодарили: Logger (4). |
Теги |
orig, баг |
|
![]() |
||||
Тема | Ответов | |||
Утечка памяти при вызове orig() | 3 | |||
Глюк orig() в 3-tier или я чего-то не понимаю? | 2 |
|