ОБСУЖДЕНИЕ

Перебор в переборе

28 ответов 11,1 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

одинаковые доки в них встречаются или нет
тема старейшин - кэширование доков в циклах для некоторых случаев (агенты, экшены) и невозможность указатель переместить из-за этого...
реальная тема - изменение текущего дока каким-то образом (явно или каким-то фоновым агентом во время выполнения) и как следствие - потеря указателя
 
куда правильнее писать так
Ой, я смеялся )) Тоха в своем стиле.

а что за скобки тут???
А скобки лучше оставить - смотрится эстетичнее, да и вероятность ошибки меньше в некоторых случаях.

MMN
А, если не жаль времени, верни цикл как был и допиши так:
Код:
...
Set telDoc=view.GetFirstDocument	
msgbox cstr(isarray(telDoc.items))
While Not telDoc Is Nothing
...
И отпиши, что грит
 
И отпиши, что грит

True

Добавлено:
P.S. telDoc из второго цикла не может в какой-то момент указывать на тот же документ, что и docX?
возможно что дело в этом, хотя переменные разные и документы только перебираются, никаких манипуляций с ними не происходит
 
а ошибка, при этом, в этой же, в первой же, итерации происходит?
что-то тут не так... ))

а если так?
Код:
on error goto errh
dim i as long

Set view=CS_GetCurrentDb.GetView("(AllPerson)")
Set telDoc=view.GetFirstDocument	
i = 0
While Not telDoc Is Nothing

Set telDoc=view.GetNextDocument(telDoc)
i = i + 1
Wend		

exit sub
errh:
msgbox Error & ": " & cstr(i) & ", " & cstr(isarray(telDoc.Items))
exit sub
 
возможно что дело в этом, хотя переменные разные и документы только перебираются, никаких манипуляций с ними не происходит
Klido ссылку дал как раз про этот случай.
Документ (i) помнит из какой он вьюхи, (ii) синглтон и (iii) кэшируеца на клиенте. Это сочетание и привело к наблюдаемому эффекту:
Если tellDoc в какой-то момент ссылаеца на docX, то docX "забудет" свою вьюху и будет считать что он из "(AllPerson)". ( ибо клиент не будет держать в памяти два объекта для одного и того же документа )
 
ибо клиент не будет держать в памяти два объекта для одного и того же документа
По-моему, и из этого правила есть исключение. Если создать второй объект базы данных, то через него можно получить второй объект документа.
 

Статистика тем

Создано
MMN,
Последний ответ от
Akupaka,
Ответы
28
Просмотры
11 119