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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.07.2006, 14:51   #1  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
:)
"Вы не можете выполнить изменения в базе данных до тех пор пока не начнется транзакция".
Вот такая ошибка этапа выполнения вылезает на модифаях в одной функции. И не всегда при том. Если вдруг кто когда-нибудь поборол такое, подскажите, пожалуйста, в какую сторону искать.
Общий смысл выпадающего места - "ЕСЛИ старое значение не равно новому, ТО присвоить и замодифаить". Чего хочет - непонятно.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
Старый 19.07.2006, 16:22   #2  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
надо гдето по ходу процедуры поставить Commit. По моему предпринимается попытка несколько раз модифицировать запись.
__________________
Want to believe...
Старый 19.07.2006, 16:26   #3  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
Цитата:
Сообщение от DA_NEAL Посмотреть сообщение
надо гдето по ходу процедуры поставить Commit. По моему предпринимается попытка несколько раз модифицировать запись.
Первым делом пробовал явно-лочить и коммитить. Но лочить-то оно может и неявно, например при том же модифае оно будет лочиться. Что явное залочивание, что коммиты - не помогает ничего.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
Старый 20.07.2006, 09:32   #4  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Странно...
А какая версия Nav?
Старый 20.07.2006, 11:04   #5  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Странно...
А какая версия Nav?
4 сп1, натив.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
Старый 20.07.2006, 13:04   #6  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
?
В догонку. Был обнаружен "вообще необъяснимый эффект".

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

"Вообще необъяснимый эффект" заключается в следующем: если окно с формой развёрнуто, то ошибка возникает после смены датафильтра, а если окно не развёрнуто, то ошибка возникает с самого первого запуска. Кто-то такое вообще видел?
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
Старый 20.07.2006, 14:23   #7  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
А что за функция вообще?
Можно код привести?

Может, объект какой почистить надо...
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 20.07.2006, 14:41   #8  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
Цитата:
Сообщение от Дуд Посмотреть сообщение
А что за функция вообще?
Можно код привести?

Может, объект какой почистить надо...

Да вот она, ничего экстраординарного. И вот на модифаях её крючит.

-t12417-----------------------------------------------------------------------
InsertGlobalDimValue()
------------------------------------------------------------------------------
GLSetup.GET;
IF GLSetup."Global Dimension 1 Code" = "Dimension Code" THEN BEGIN
ExternReportLine.GET("Extern. Report Code", "Line No.");
IF ExternReportLine."Global Dim. 1 Value Filter" <> "Dimension Value Filter" THEN BEGIN
ExternReportLine."Global Dim. 1 Value Filter" := "Dimension Value Filter";
ExternReportLine.MODIFY;
END;
END;
IF GLSetup."Global Dimension 2 Code" = "Dimension Code" THEN BEGIN
ExternReportLine.GET("Extern. Report Code", "Line No.");
IF ExternReportLine."Global Dim. 2 Value Filter" <> "Dimension Value Filter" THEN BEGIN
ExternReportLine."Global Dim. 2 Value Filter" := "Dimension Value Filter";
ExternReportLine.MODIFY;
END;
END;
==========================================================

Пардон за отсутствие интендов, когда пишу сообщение - они есть, когда отправляю - куда-то пропадают.

Вызывается из c12405, но его приводить - здоровый больно.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
Старый 20.07.2006, 14:43   #9  
GalaM is offline
GalaM
Moderator
Лучший по профессии 2009
 
640 / 42 (3) +++
Регистрация: 13.03.2008
Адрес: Москва
Цитата:
Сообщение от The_Navisioner Посмотреть сообщение
"Вообще необъяснимый эффект" заключается в следующем: если окно с формой развёрнуто, то ошибка возникает после смены датафильтра, а если окно не развёрнуто, то ошибка возникает с самого первого запуска. Кто-то такое вообще видел?
Может дело в коде, который выполняется при смене датафильтр. Может быь он затрагивает Ваш объект с модифаем.

А вообще-то согласна с ДУД. Надо пример привести
Старый 20.07.2006, 18:50   #10  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от The_Navisioner Посмотреть сообщение
"Вообще необъяснимый эффект" заключается в следующем: если окно с формой развёрнуто, то ошибка возникает после смены датафильтра, а если окно не развёрнуто, то ошибка возникает с самого первого запуска. Кто-то такое вообще видел?
по вторичным признакам смахивает на неочищенную переменную. в которой что-то сохраняется. посмотри в глобальных всех открытых форм.
и юнитов, сразузагружабельных (SingleInstance).
Старый 20.07.2006, 18:51   #11  
The_Navisioner is offline
The_Navisioner
Участник
Аватар для The_Navisioner
 
22 / 10 (1) +
Регистрация: 25.01.2006
Цитата:
Сообщение от gala Посмотреть сообщение
Цитата:
Сообщение от The_Navisioner Посмотреть сообщение
"Вообще необъяснимый эффект" заключается в следующем: если окно с формой развёрнуто, то ошибка возникает после смены датафильтра, а если окно не развёрнуто, то ошибка возникает с самого первого запуска. Кто-то такое вообще видел?
Может дело в коде, который выполняется при смене датафильтр. Может быь он затрагивает Ваш объект с модифаем.

А вообще-то согласна с ДУД. Надо пример привести
Всё заработало через переменные, без модифаев таблиц.

Плюнуто было после того как увидел в code coverage вот такие вещи (и в большом количестве):
100 COUNT RANGE 17 Source Text ExternReportLine.MODIFY;
101 FIND/NEXT 17 Source Text ExternReportLine.MODIFY;


(должно ведь быть так -
100 LOCKTABLE 17 Source Text ExternReportLine.MODIFY;
101 MODIFY 17 Source Text ExternReportLine.MODIFY; )

Похоже на качественный срыв крыши.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15)
 


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

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

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