![]() |
|
УстановитьСсылкуНового | ☑ | ||
---|---|---|---|---|
0
Кондер
16.05.24
✎
10:48
|
Код:
НовСсылка = Мен.ПолучитьСсылку(); объект.УстановитьСсылкуНового(НовСсылка); Отладка: ТипЗнч(НовСсылка) = ТипЗнч(Объект.Ссылка) (ИСТИНА) НовСсылка = Объект.Ссылка (ЛОЖЬ) Вопрос: Почему Ложь? |
|||
1
Кондер
16.05.24
✎
10:46
|
НовСсылка = Мен.ПолучитьСсылку();
объект.УстановитьСсылкуНового(НовСсылка); УстановленнаяСсылка = Объект.ПолучитьссылкуНового(); УстановленнаяСсылка = НовСсылка (ИСТИНА) |
|||
2
trad
16.05.24
✎
10:47
|
Потому что Объект.Ссылка приобретет новое значение только при записи
|
|||
3
trad
16.05.24
✎
10:55
|
Объяснить это я могу тем, что значение Объект.Ссылка должно быть гарантированно уникальным и вообще быть в БД.
А гарантировать уникальность новой ссылки можно только проверив это в транзакции при записи. Вот, только после записи, новая ссылка будет записана в БД и она будет уникальна, и только тогда ей место в Объект.Ссылка |
|||
4
Кондер
16.05.24
✎
11:05
|
(3) По вашему получается, что если мы записали куда то в другие объекты НовСсылка, то она не будет равна Объект.Ссылка.
|
|||
5
trad
16.05.24
✎
11:17
|
Будет равна только после записи объекта
|
|||
6
Кондер
16.05.24
✎
11:20
|
(5) Будет
|
|||
7
Ёпрст
16.05.24
✎
11:35
|
(0)УстановитьСсылкуНового - это маркер, только помечает, что объекту при записи объекта присвоят этот гуид ссылки.
Самой ссылки еще нема, поэтому и ложь (объекта то нет в базе, нет объекта - нету ссылки) |
|||
8
Fedor-1971
16.05.24
✎
11:37
|
(6) Не факт, вот кусок СП:
УстановитьСсылкуНового(<Ссылка>) .... Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта. т.е. если одновременно пытаются записать 2 объекта одного типа, то есть вероятность совпадения ссылок и один из них может вывалиться в ошибку |
|||
9
Ёпрст
16.05.24
✎
11:38
|
(4) если не запишешь сам объект с этим гуидом, то в других будет "битая ссылка", <объект не найден>.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |