10.10.2006, 09:03 | #1 |
Участник
|
Объясните пожалуйста, для чего нужен Modify и Commit. Как они используются, при каких обстоятельствах.
Я в этом делаю первые шаги, так что объясните для группы Д! |
|
10.10.2006, 09:55 | #2 |
Участник
|
Modify - это для записей. Например, объявляете какую-нить переменную rec типа record, которая отображает запись в табл. Customer. После того, как произведёте с ней какие либо действия (типа rec.Name:='John'; rec.Status:=rec.Status::blocked и т.п.) нужно, чтобы изменения вступили в силу. Для того, чтобы это произошло используется modify. Т.е. в конце, после всех действий над записью напишите Rec.MODIFY;
Commit-ом честно говоря, пока не пользовался, но в хелпе написано, мол используйте эту функцию чтобы завершить текущую запись транзакции. P.S. А не могли бы вы поподробней объяснить для чего это вам нужно. |
|
10.10.2006, 10:39 | #3 |
Участник
|
|
|
11.10.2006, 12:02 | #4 |
Участник
|
В Navision действует основополагающий принцип: Auto Commit and Rollback.
Смысл его в том, что реальные изменения в базе данных происходят при успешном завершении кода (Auto Commit ). В противном случае происходит откат в первоначальное состояние (Rollback). Вызов функции Commit вынуждает базу данных произвести реальные изменения не дожидаясь завершения всего блока кода. Все, что находится до команды Commit, будет реализовано и откат назад уже невозможен, даже в случае ошибок в последующем участке кода. Следовательно, применять Commit надо с большой осторожностью, так как это может привести к потере консистентности (не знаю как перевести Inconsistent data). Обычно Commit применяют в тех случаях, когда вам необходимо "застолбить" какие-то изменения, чтобы использовать их при дальнейшем исполнении кода. |
|
12.10.2006, 09:52 | #5 |
Участник
|
2 Eduard-NL:
Думаю, по-русски это называется "целостность данных" |
|
12.10.2006, 10:50 | #6 |
Участник
|
Ещё есть какая-то фишка о которой я не знаю,
в WMS видел. Вобщем выполняется постинг, потом бах, еррор. Но программа не вылетает, а продолжает выполняться код и в коце говориться, что учтённых документов 0. Как так они это делают, я не понял. Я и различные типы транзакций ставил, не получалось так. |
|
12.10.2006, 11:34 | #7 |
Участник
|
Цитата:
Сообщение от Storkich
Ещё есть какая-то фишка о которой я не знаю,
в WMS видел. Вобщем выполняется постинг, потом бах, еррор. Но программа не вылетает, а продолжает выполняться код и в коце говориться, что учтённых документов 0. Как так они это делают, я не понял. Я и различные типы транзакций ставил, не получалось так. Мягкое гашение ошибок, учет запускается через if codeunit.run. Аналогичным образом организован пакетный учет документов покупки/продажи |
|