|
![]() |
#1 |
Участник
|
Смотрите. Этот метод на самом деле не меняет значение поля в БД. Он присваивает значение полю табличного курсора. Сохранение сделанных изменений в БД будет происходить в методе update() таблицы. Если, скажем, после того как отработает метод initContractAccount и до того как выполнится метод update(), произойдёт непредвиденная ошибка (выключится свет), то данные в БД не изменятся. Поэтому изменять значения в третьей таблице в этом методе не стоит.
Цитата:
Найти откуда вызывается метод можно экспериментальным путём. Поставьте точку останова в этот метод. Когда точка останова сработает, в отладчике проанализируйте стек вызовов. |
|
|
За это сообщение автора поблагодарили: Stingich (1). |
![]() |
#2 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Смотрите. Этот метод на самом деле не меняет значение поля в БД. Он присваивает значение полю табличного курсора. Сохранение сделанных изменений в БД будет происходить в методе update() таблицы. Если, скажем, после того как отработает метод initContractAccount и до того как выполнится метод update(), произойдёт непредвиденная ошибка (выключится свет), то данные в БД не изменятся. Поэтому изменять значения в третьей таблице в этом методе не стоит.
Код который вы привели не отвечает за изменение в таблице строк. Он обновляет значение только в курсоре верхней таблицы. Ищите то место откуда происходит вызов метода update() таблицы строк. Найти откуда вызывается метод можно экспериментальным путём. Поставьте точку останова в этот метод. Когда точка останова сработает, в отладчике проанализируйте стек вызовов. |
|
![]() |
#3 |
Участник
|
Цитата:
- Из названия и местоположения метода initContractAccount на таблице PurchTable следует, что он предназанчен для инициализации полей ContractAccount таблицы PurchTable. Вставлять в него код для изменения пусть таких же полей но другой таблицы - не логично. - Добавлять код, меняющий данные в БД, в метод, который предназначен для изменения значений лишь в курсоре - не логично. |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() На всякий случай ещё раз. Две причины, по которым не стоит этого делать - это название метода: initContractAccount и его местоположение: таблица PurchTable.
- Из названия и местоположения метода initContractAccount на таблице PurchTable следует, что он предназанчен для инициализации полей ContractAccount таблицы PurchTable. Вставлять в него код для изменения пусть таких же полей но другой таблицы - не логично. - Добавлять код, меняющий данные в БД, в метод, который предназначен для изменения значений лишь в курсоре - не логично. |
|
![]() |
#5 |
Участник
|
Цитата:
Вы должны сами найти запись в inventBatch которую хотите изменить; выбрать её для обновления; задать новое значение поля; и наконец вызвать метод update() таблицы inventBatch для сохранения изменений в БД. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|