powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Зачем Cache хранит пустые строки?
9 сообщений из 9, страница 1 из 1
Зачем Cache хранит пустые строки?
    #35574097
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давно интересует этот вопрос. Не могу в документации найти на него ответ.
Зачем кащей сохраниет дополнительно пустую строку при сохранениии экземпляра класса?
Вот простой пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
Class User.NewClass2 Extends %Persistent
{

Property NewProperty1 As %String;

}

Код: plaintext
1.
2.
3.
4.
5.
USER>s x=##class(User.NewClass2).%New()
 
USER>s x.NewProperty1="fgbfh"

USER>d x.%Save()

При этом имеем:
Код: plaintext
1.
2.
3.
4.
5.
 1 :  ^User.NewClass2D =  1  
 2 :  ^User.NewClass2D( 1 ) = $lb("","fgbfh") 
    
Всего:  2   [Конец глобала] 

...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35574098
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть зачем здесь:
Код: plaintext
1.
$lb("","fgbfh") 
на первом месте в списке пустая строка ""?
...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35574190
ceshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может они туда планировали/ют чо-то писать? точка входа для некоего функционала...
...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35574277
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это поле для %CLASSNAME

Оно используется при наследовании, чтобы различать экземпляры разных классов.
Но в базовом классе оно пустое (видимо для экономии места)

Увидеть это можно, посмотрев втруктуру хранения
...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35574459
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Это поле для %CLASSNAME

Оно используется при наследовании, чтобы различать экземпляры разных классов.
Но в базовом классе оно пустое (видимо для экономии места)

Увидеть это можно, посмотрев втруктуру хранения

А как к нему обратиться? То есть как энто свойство называется?
Т.е. ,к примеру, для получения номера экземпляра используется %Id, а тут как быть?
%ClassName - не работает...
...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35574506
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее работает, но выдаёт имя открытого класса, но не пустую строку...
...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35574524
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
s obj=##class(...).%OpenId()
w obj.%ClassName()

запрос типа
Код: plaintext
Select %ClassName from table1

Работает некорректно, возвращает тип данных той таблицы, откуда идет выборка, а не реальный тип объекта, если выборка из базовой таблицы

Но зато если выборка из производной таблицы, она показывает производный класс и в результате не показывает экземпляры базового класса (Собственно для этого %Classname и нужен)
...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35574530
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТочнее работает, но выдаёт имя открытого класса, но не пустую строку...
Оно выдает имя класса, просто его не сохраняет в глобал для базового класса

А вы сделайте класс базовый и производный.
Создаетй объект производного класса, сохраните и откройте объект базового класса.
Посмотрите его %ClassName - это будет имя реального класса объекта, а не того, который вы открывали.
...
Рейтинг: 0 / 0
Зачем Cache хранит пустые строки?
    #35576642
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, где хранить %%CLASSNAME указывается в storage и это можно переопределять.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Зачем Cache хранит пустые строки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]