AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.07.2012, 01:16   #1  
Romul is offline
Romul
Участник
 
186 / 11 (1) +
Регистрация: 26.12.2007
Цитата:
Сообщение от AlexB Посмотреть сообщение
Цитата:
Сообщение от Orwell Посмотреть сообщение
IF RecRef.FIND('-') THEN BEGIN
REPEAT
RecRef2 := RecRef.DUPLICATE;
RecRef2.CLOSE;
UNTIL RecRef.NEXT = 0;

Система в этом случае валится через непродолжительное время.
Запустил этот код у себя на 5-ке (Build 25560, 26084 как у вас, под рукой не окзался) для 2 млн. записей: всё ОК, система не валится, так же ОК если не делать RecRef2.CLOSE (зачем вообще делать CLOSE если вы не делаете до этого OPEN?).
Что вы вообще потом делаете с RecRef2 после duplicate? Если хотите в цикле после каждого duplicate 100% очистить RecRef2, то сделайте просто CLEAR(RecRef2), и правильнее будет даже CLEAR сделать до duplicate.
Может у вас всё же в коде программа впадает в бесконечный цикл из за неложенных фильтров?
По поводу производительности: по-видимому в recref та же технология как и в темповых rec-переменных, у этих тоже с определённого числа записей производительность падает, т.к. темповые таблицы грузятся в память клиента.
Можно без close... Можно с CLEAR.
Но CLEAR до дупликейта не надо делать (да он и не поможет здесь), ровно как не надо делать CLEAR при COPY на таблицу - фильтры затрутся новыми...
В момент следующего дупликейта произойдет возврат нового рекрефа.
На RecRef ключ пробовали накладывать (скажем, по номеру счета)? По счету отфильтровали? В моей базе записей больше 10 млн. на всей 17-й. В отфильтрованном и отсортированном по правильному ключу наборе - порядка 2 млн. Пробуйте с ключом/фильтрами.
Старый 28.07.2012, 23:45   #2  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Orwell Посмотреть сообщение
На RecRef ключ пробовали накладывать (скажем, по номеру счета)? По счету отфильтровали? В моей базе записей больше 10 млн. на всей 17-й. В отфильтрованном и отсортированном по правильному ключу наборе - порядка 2 млн. Пробуйте с ключом/фильтрами.
Накладывал ключ и фильтровал по счёту - всё без проблем, выше приведённый код (1-й вариант, без функции) отрабатывает у меня для 2 млн. записей за 1 минуту.
Старый 29.07.2012, 07:50   #3  
Romul is offline
Romul
Участник
 
186 / 11 (1) +
Регистрация: 26.12.2007
Цитата:
Сообщение от AlexB Посмотреть сообщение
Цитата:
Сообщение от Orwell Посмотреть сообщение
На RecRef ключ пробовали накладывать (скажем, по номеру счета)? По счету отфильтровали? В моей базе записей больше 10 млн. на всей 17-й. В отфильтрованном и отсортированном по правильному ключу наборе - порядка 2 млн. Пробуйте с ключом/фильтрами.
Накладывал ключ и фильтровал по счёту - всё без проблем, выше приведённый код (1-й вариант, без функции) отрабатывает у меня для 2 млн. записей за 1 минуту.
Ну значит делаем неутишительный вывод - я лузер, чо.
А вообще - надо втупую разбираться с конфигурацией... Повторюсь - вся проблема в этом простейшем куске кода, который я привел. Утечка в дупликейте, а не где-то ДО или ПОСЛЕ...
В любом случае - спасибо, что попробовали. Плюсую за активность и интерес к проблеме
Старый 30.07.2012, 10:13   #4  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от AlexB Посмотреть сообщение
Цитата:
Сообщение от Orwell Посмотреть сообщение
На RecRef ключ пробовали накладывать (скажем, по номеру счета)? По счету отфильтровали? В моей базе записей больше 10 млн. на всей 17-й. В отфильтрованном и отсортированном по правильному ключу наборе - порядка 2 млн. Пробуйте с ключом/фильтрами.
Накладывал ключ и фильтровал по счёту - всё без проблем, выше приведённый код (1-й вариант, без функции) отрабатывает у меня для 2 млн. записей за 1 минуту.
Расскажите, заодно, какой у вас билд. Сообщество должно знать о стабильных версиях.
Старый 12.08.2012, 20:31   #5  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Alterant Посмотреть сообщение
Расскажите, заодно, какой у вас билд. Сообщество должно знать о стабильных версиях.
Build, на котором я тестировал, я уже сообщал в моём 1-м посте: 25560 (см. выше).
Цитата:
Сообщение от AlexB Посмотреть сообщение
Запустил этот код у себя на 5-ке (Build 25560 ...
Я, честно говоря, сомневаюсь, что дело в Build'е.
Orwell, кстати, тестировал на более новом build'е 26084. Если у сообщества на build'e 26084 (которого у меня нет) тоже та же ошибка вылетает как и у Orwell, то тогда дело действительно в Build'е.
Старый 31.10.2012, 13:34   #6  
ОльгаМ is offline
ОльгаМ
Участник
 
36 / 10 (1) +
Регистрация: 07.09.2004
Адрес: Москва
Искала одну проблему, случайно зашла сюда.
Или я не совсем поняла, но почему DUBLICATE вы используете для каждой записи.
Пример:

RecRef.CLOSE; в 9-ой версии эта команда нужна.
RecRef.OPEN(17);
RecRef2 := RecRef.DUPLICATE;
MESSAGE('%1 - %2',RecRef.COUNT,RecRef2.COUNT);
DUBLICATE дублирует всю таблицу RecRef c фильтрами в табл.RecRef2, а не определенную запись.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:43.