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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.10.2006, 09:03   #1  
iolanna is offline
iolanna
Участник
 
38 / 10 (1) +
Регистрация: 25.10.2006
Thumbs up
Объясните пожалуйста, для чего нужен Modify и Commit. Как они используются, при каких обстоятельствах.
Я в этом делаю первые шаги, так что объясните для группы Д!
Старый 10.10.2006, 09:55   #2  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Modify - это для записей. Например, объявляете какую-нить переменную rec типа record, которая отображает запись в табл. Customer. После того, как произведёте с ней какие либо действия (типа rec.Name:='John'; rec.Status:=rec.Status::blocked и т.п.) нужно, чтобы изменения вступили в силу. Для того, чтобы это произошло используется modify. Т.е. в конце, после всех действий над записью напишите Rec.MODIFY;
Commit-ом честно говоря, пока не пользовался, но в хелпе написано, мол используйте эту функцию чтобы завершить текущую запись транзакции.

P.S. А не могли бы вы поподробней объяснить для чего это вам нужно.
Старый 10.10.2006, 10:39   #3  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
COMMIT
Старый 11.10.2006, 12:02   #4  
Eduard-NL is offline
Eduard-NL
Участник
 
9 / 11 (1) +
Регистрация: 05.10.2006
В Navision действует основополагающий принцип: Auto Commit and Rollback.
Смысл его в том, что реальные изменения в базе данных происходят при успешном завершении кода (Auto Commit ). В противном случае происходит откат в первоначальное состояние (Rollback).

Вызов функции Commit вынуждает базу данных произвести реальные изменения не дожидаясь завершения всего блока кода. Все, что находится до команды Commit, будет реализовано и откат назад уже невозможен, даже в случае ошибок в последующем участке кода.

Следовательно, применять Commit надо с большой осторожностью, так как это может привести к потере консистентности (не знаю как перевести Inconsistent data).

Обычно Commit применяют в тех случаях, когда вам необходимо "застолбить" какие-то изменения, чтобы использовать их при дальнейшем исполнении кода.
Старый 12.10.2006, 09:52   #5  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
2 Eduard-NL:
Думаю, по-русски это называется "целостность данных"
Старый 12.10.2006, 10:50   #6  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
Ещё есть какая-то фишка о которой я не знаю,
в WMS видел.
Вобщем выполняется постинг, потом бах, еррор.
Но программа не вылетает, а продолжает выполняться код и в коце говориться, что учтённых документов 0.
Как так они это делают, я не понял.
Я и различные типы транзакций ставил, не получалось так.
Старый 12.10.2006, 11:34   #7  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от Storkich Посмотреть сообщение
Ещё есть какая-то фишка о которой я не знаю,
в WMS видел.
Вобщем выполняется постинг, потом бах, еррор.
Но программа не вылетает, а продолжает выполняться код и в коце говориться, что учтённых документов 0.
Как так они это делают, я не понял.
Я и различные типы транзакций ставил, не получалось так.

Мягкое гашение ошибок, учет запускается через if codeunit.run.
Аналогичным образом организован пакетный учет документов покупки/продажи
 


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

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

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