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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.07.2012, 20:41   #6  
Romul is offline
Romul
Участник
 
186 / 11 (1) +
Регистрация: 26.12.2007
В общем, я не знаю как это комментировать...
Есть, скажем, процедура у меня. Называется она, допустим, Proc1. И есть в этой процедуре следующий кусок кода (переменные RecRef и RecRef2 - локальные). Бегаю я только по 17-й таблице с парой миллионов записей, предварительно натравив рекрефу на 17-ю, разумеется:

Proc1()
IF RecRef.FIND('-') THEN BEGIN
REPEAT
RecRef2 := RecRef.DUPLICATE;
RecRef2.CLOSE;
UNTIL RecRef.NEXT = 0;

Система в этом случае валится через непродолжительное время.

Делаю следующее изменение...

Proc1()
IF RecRef.FIND('-') THEN BEGIN
REPEAT
Proc2(RecRef,RecRef2);
RecRef2.CLOSE;
UNTIL RecRef.NEXT = 0;

Proc2(VAR RecRefFrom,VAR RecRefTo)
RecRefTo := RecRefFrom.DUPLICATE;

...и полено начинает работать.
Т.е. надо не просто локальными объявить переменные, но и еще процедуру для дупликейта отдельную создать.

Серж, Артем, спасибо за дискуссию. Хренову тучу времени убил на этот ад. Может кому эта фигня тоже полезной окажется...

ЗЫ: коллеги, попробуйте на своих больших базах подобное. Возможно, конфа сервера влияет...
 


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

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

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