28.02.2007, 11:30 | #1 |
Участник
|
Класс Set некорректно сохраняет xRecord
Любопытный баг
Если объявить set set = New Set(Types::Record); а потом что нибудь туда положить и попробовать перебрать значения итератором, то в отладчике видно, что нужные значения лежат, но при извлечении мы получаем common у которого потеряны все поля кроме системных и тип буфера - UNKNOWN, хотя tableId заполнен корректно. Соответственно сделать с извлекаемым значением ничего нельзя - ошибка времени выполнения. Придется юзать Map :-( Ax 3.0 SP3 |
|
28.02.2007, 11:31 | #2 |
Участник
|
Кто-нить знает как поправить опечатки в названии темы ?
Нужно было "Класс Set некорректно сохраняет xRecord " |
|
28.02.2007, 11:37 | #3 |
Участник
|
все норм положилося и взялося....
X++: static void Job60(Args _args) { Set s = new Set(Types::Record); int i; inventTable it; SetEnumerator se; ; while select it { i++; if(i==10) break; s.add(it); } it.clear(); se= s.getEnumerator(); while(se.moveNext()) { it = se.current(); } } Последний раз редактировалось Jony; 28.02.2007 в 11:41. |
|
|
За это сообщение автора поблагодарили: IvanS (1). |
28.02.2007, 11:39 | #4 |
Участник
|
Я использовал SetIterator
Глюк вылез для него. |
|
28.02.2007, 11:41 | #5 |
Участник
|
Ха!, действительно, с итератором не фурычит, странно., юзайте SetEnumerator
ПС: итераторы не использую, так как енумераторы по душе больше Последний раз редактировалось Jony; 28.02.2007 в 11:55. Причина: ПС |
|
28.02.2007, 12:16 | #6 |
Участник
|
Цитата:
Для итераторов всегда забываешь в конце цикла вызвать Next() Для енумераторов это не нужно. |
|
01.03.2007, 11:08 | #7 |
Developer
|
А еще созданные на клиенте иттераторы не работают для созданных на сервере мэпов... (возможно и для сэтов - не проверял)
Енумератор - как-то надежнее |
|
07.03.2007, 20:50 | #8 |
Участник
|
Цитата:
Class: MapIterator extends Object Remarks MapIterators and the maps over which they iterate must be on the same Client/Server side. Class: SetIterator extends Object аналогично... |
|
07.03.2007, 23:05 | #9 |
Участник
|
В четвертой Аксапте итераторы оставлены исключительно для совместимости. Не используйте их в новом коде.
|
|
Теги |
ax3.0 |
|
|