|
19.07.2006, 14:51 | #1 |
Участник
|
"Вы не можете выполнить изменения в базе данных до тех пор пока не начнется транзакция".
Вот такая ошибка этапа выполнения вылезает на модифаях в одной функции. И не всегда при том. Если вдруг кто когда-нибудь поборол такое, подскажите, пожалуйста, в какую сторону искать. Общий смысл выпадающего места - "ЕСЛИ старое значение не равно новому, ТО присвоить и замодифаить". Чего хочет - непонятно.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15) |
|
19.07.2006, 16:22 | #2 |
Участник
|
надо гдето по ходу процедуры поставить Commit. По моему предпринимается попытка несколько раз модифицировать запись.
__________________
Want to believe... |
|
19.07.2006, 16:26 | #3 |
Участник
|
Первым делом пробовал явно-лочить и коммитить. Но лочить-то оно может и неявно, например при том же модифае оно будет лочиться. Что явное залочивание, что коммиты - не помогает ничего.
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15) |
|
20.07.2006, 09:32 | #4 |
Участник
|
Странно...
А какая версия Nav? |
|
20.07.2006, 11:04 | #5 |
Участник
|
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15) |
|
20.07.2006, 13:04 | #6 |
Участник
|
В догонку. Был обнаружен "вообще необъяснимый эффект".
Забыл написать, что при запуске функции с формы первый раз она отрабатывает нормально (причём отрабатывает нормально не один раз, а сколько угодно, пока не поменяли датафильтр), а при втором запуске (автоматически запускается при смене датафильтра на форме) вылетает эта ошибка (причём с первого же запуска). "Вообще необъяснимый эффект" заключается в следующем: если окно с формой развёрнуто, то ошибка возникает после смены датафильтра, а если окно не развёрнуто, то ошибка возникает с самого первого запуска. Кто-то такое вообще видел?
__________________
--- GoldEd 2.50+/w32*Origin: Луц по 20 чаттлов! Остановите рост цен на бензин. (2:5099/15) |
|
20.07.2006, 14:43 | #7 |
Moderator
|
Цитата:
А вообще-то согласна с ДУД. Надо пример привести |
|
20.07.2006, 18:51 | #8 |
Участник
|
Цитата:
Плюнуто было после того как увидел в 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) |
|
20.07.2006, 18:50 | #9 |
Administrator
|
Цитата:
и юнитов, сразузагружабельных (SingleInstance). |
|
20.07.2006, 14:23 | #10 |
NavAx
|
А что за функция вообще?
Можно код привести? Может, объект какой почистить надо...
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
20.07.2006, 14:41 | #11 |
Участник
|
Цитата:
Да вот она, ничего экстраординарного. И вот на модифаях её крючит. -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) |
|