Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Есть класс наследник от TPersistent. Он ссылается на другой Persistent класс. Когда мы сохраняем первый, он автоматически вызывает сохранение второго. Как можно повлиять на сохрание? То есть когда я хочу, что б она его сохраняла, когда не надо - не сохраняла. Возможно через RemoveFromSaveSet сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 06:38 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Нужно вызывать Oref.%Save(0), тогда сохраняются только объекты-ссылки, которые еще ни разу не сохранялись (т.е. у которых Oref.Link.%Id()=""). См. документацию на %Library.Persistent, метод %Save Любви. logist (Сергей Шутов) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 07:26 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Вопрос не в том, что надо сохранять только те, кто не разу не сохранялись. А как не дать Каше вызвать %Save у свойств объекта. Или просто выкинуть их из очереди как это делает RemoveFromSaveSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 07:58 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Если сделать %Save(0), он, насколько я понял документацию, не будет вызываться. Любви. logist (Сергей Шутов) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 08:12 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
В общем, уточню вопрос... Есть persistent объект A, который ссылается на другой persistent объект B. Свойство трансиентное, инициализируется мною (создается новый объект). При сохранении объекта A система все свойства добавляет в очередь на сохранение и соответственно сохраняет объект В. Мне нужно, чтобы объект В сохранялся не когда этого хочет система, а когда хочу я. Т.е. при выполнении каких-либо действи при определенных условиях я сам сохранял этот объект, в ином случае при сохранении А - объект В не сохранялся. Пробовали решить проблему следующим образом - когда приходит уведомление объекту В добавиться в очередь на сохранение - при определенных условиях убивали его из этой очереди (используя %RemoveFromSaveSet). При этом падает %Save объекта А - Код: plaintext Собственно сам вопрос - как решить эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 08:19 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
И вообще, есть ли какой-либо способ объявления свойства, чтобы ему не посылалось уведомление на сохранение? Как работает %RemoveFromSaveSet() и когда его следует вызывать? Из-за чего падает %Save() в данном случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 08:27 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Скинь исходники =logist Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 08:52 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Объект А Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Объект В Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Выполнение: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 08:59 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
В классе TEST.А следует читать: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 09:01 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 10:01 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Хотя код из %OnBeforeSave все таки лучше перенести в %OnAddToSaveSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 10:02 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Похоже, что ход с обнулением свойства - единственный рабочий. Думаю, что это можно отправить как ошибку в интерсистемс - после исполнения %OnAddToSaveSet объект из очереди сохранения удаляется, но потом каким-то чудесным образом опять туда засовывается. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 10:23 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 11:12 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Спасибо, Ptn! Подсказал интересную идею, по объявлению свойства как %String - в таком случае объекту не посылается уведомление на сохранение... Таким образом, проблему полностью удалось решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 11:14 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
Обошлись без обнуления свойства - в данном случае это лишнее действие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 11:18 |
|
||
|
Не дать сохранится свойству типа Persistent
|
|||
|---|---|---|---|
|
#18+
ДЫк - основная бага работы с транзиентыми свойствами - если указан тип некий объект - в класс вкомпиляются методы доступа к нему - и ваша бага когда класс еще и хранимый. Если с полем нет никакой хитрой обработки вроде ..objectBGetObjectId() - то типа поля неважен в декларации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 11:19 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=75&tid=1559066]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 336ms |

| 0 / 0 |
