powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
25 сообщений из 52, страница 1 из 3
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38232965
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаю:
- имя класса
- имя индекса
- ИД экземпляра

Как на базе этой информации получить ключевое выражение индекса класса для экземпляра?
----------
Cache for Windows (x86-64) 2010.2.3 (Build 702) Tue Feb 15 2011 14:20:27 EST
Cache for Windows (x86-64) 2012.1.1 (Build 602) Wed Mar 7 2012 22:36:34 EST
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233058
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это написано в CompiledClass, IndexDefinition.
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233129
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну яэто написано в CompiledClass, IndexDefinition.
Смотрю в документации класс %Dictionary.CompiledClass и поиском не нахожу IndexDefinition ...

Можно более подробнее? Пример какой-то не помешал бы...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233212
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaМожно более подробнее? Пример какой-то не помешал бы...От Вас тоже не помешал бы пример, что Вы подразумеваете под "ключевое выражение индекса класса для экземпляра".
Пример для bitmap-индекса можете привести?
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233256
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

У класса CompiedClass взять объект определения класса, у него свойство relationship Indices as %Dictionary.CompiledIndex. Обшибся с названием класса, IndexDefinition это то что до компиляции. Вот в свойствах этого %Dictionary.CompiledIndex и прописаны Type, Data и прочее.
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233286
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я ,

%Dictionary.CompiledIndex имеется.
Что дальше делать с "ИД экземпляра"?
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233455
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

Что-то мне подсказывает, что должна существовать граница вопросов, после которой начинается самостоятельная работа.
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233515
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitОт Вас тоже не помешал бы пример
Про битмап мне не интересно... А простой класс имеет примерно такую структуру

Код: vbnet
1.
^<имя_класса>I(<имя_индекса>,<ключевое_выражение>,ID)=""



Вот это ключевое выражение я и хочу получить, зная все остальное.
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233517
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну яЧто-то мне подсказывает, что должна существовать граница вопросов, после которой начинается самостоятельная работа.
Т.е. ответов далее не ждать?
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233522
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну яВот в свойствах этого %Dictionary.CompiledIndex и прописаны Type, Data и прочее.
Про этот класс я знаю.

Интересуюсь есть ли что-то, метод или функция, которая сразу вернет мне "ключевое выражение" для некоего индекса класса и известного ИД экземпляра...
Кащей же как-то его вычисляет. Можкт есть чем сразу и воспользоваться...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233530
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Ну, насчет ждать - не знаю, а насчет описания как что хранится в определении индексов - так толковой доки от представителей Интерсистемс пока в природе не появилось. servit может быть, как инженер Интерсистемс, найдет...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233553
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я , так я на удачу и спросил... Вдруг кто знает.
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233564
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaВот это ключевое выражение я и хочу получить, зная все остальное.Именно это мною с самого начала и подразумевалось.
Я просто не был уверен в смысле отношения CompiledClass и IndexDefinition к сути вопроса, поэтому и переспросил.

Такой готовой функции для простого индекса нет, но при желании её можно написать самостоятельно.

А что должно вернуться при составном индексе?
Код: sql
1.
2.
3.
Index indexName On (a, b);

^globalI("indexName","A","B",1)=""


PS: в новой версии Caché 2013.1 появилась возможность генерировать значение конкретного индекс(а/ов) для конкретного экземпляра класса или для диапазона ID. Возможно, это Вам подойдёт.

ну яservit может быть, как инженер Интерсистемс, найдет...Я не являюсь инженером InterSystems.
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38233743
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitА что должно вернуться при составном индексе?
Я не сторонник составных индексов. Т.ч. они меня не интересуют...

servitв новой версии Caché 2013.1 появилась возможность генерировать значение конкретного индекс(а/ов) для конкретного экземпляра класса или для диапазона ID. Возможно, это Вам подойдёт.
Нет у нас такой версии...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38234538
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitА что должно вернуться при составном индексе?
Код: sql
1.
2.
3.
Index indexName On (a, b);

^globalI("indexName","A","B",1)=""


Думаю, что для всех вариантов (и для битмап) подошло простое значение $na(). Т.е. вот это

Код: vbnet
1.
s name=$na(^globalI("indexName","A","B",1))



Т.о., зная ИД, я запросто могу получить как следующий, так и предудущий элемент "по индексу"...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38235942
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

DEV>w ##class(LBCDBLab).SpecimenExists(1)
0
DEV>w $name(^(""))
^User.LBCDBLabI("Specimen",1,"")

Как инженер Интерсистемс я бы не советовал этого делать в продакшене, но если очень хочется... )))

=Сергей
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38235953
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logistКак инженер Интерсистемс я бы не советовал этого делать в продакшене
Тогда зачем такое писать?

Насколько я понял

Код: vbnet
1.
w $na(^(""))



Возвращает что-то опираясь на $zr...

Код: vbnet
1.
2.
3.
4.
5.
6.
TEST>w $d(^O("Df"))
10
TEST>w $na(^(""))
^O("")
TEST>w $zr
^O("Df")



И смысл применять мне сие? Там нет ни указание индекса, ни ИД экземпляра... Это просто некий выверт. Максимум частный случай...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38235955
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logist
Код: vbnet
1.
DEV>w ##class(LBCDBLab).SpecimenExists(1)


Вот про эту строчку чуть подробнее... Что делает этот метод?
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38235980
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaВот про эту строчку чуть подробнее... Что делает этот метод? %CacheIndex

Instance by Index Key

logist ,

Дано Sample.Company :IDName20OctoTron LLC.
Пример:

Код: plaintext
1.
2.
3.
4.
5.
SAMPLES>w ##class(Sample.Company).NameIdxExists("20",.id)
0
SAMPLES>w $name(^(""))
^Sample.CompanyI("NameIdx"," 20","")
SAMPLES>w
id=""

Что не есть желаемое.

Другой пример:

Код: plaintext
1.
2.
3.
4.
5.
SAMPLES>w ##class(Sample.Company).NameIdxExists("OctoTron LLC.",.id)
1
SAMPLES>w $name(^(""))
^Sample.CompanyI("NameIdx"," OCTOTRON LLC.","")
SAMPLES>w
id=20

Но здесь не участвует ID экземпляра.
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38235992
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

ну надо делать $name(^(id))

я всеравно не понимаю зачем это надо и чем плох стандартный SQL
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38235993
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitЧто не есть желаемое.
...
Но здесь не участвует ID экземпляра.
Вывод - фтопку!
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38235994
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

поддерживаю ))

just use SQL
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38236014
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logistя всеравно не понимаю зачем это надо
Хочу сделать навигацию по индексу... Знаю только
- имя класса
- имя индекса
- ИД экземпляра

Хочу узнать предыдущий ИД и следующий.

Вроде ранее все расписал...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38236020
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitkrvsaВот про эту строчку чуть подробнее... Что делает этот метод? %CacheIndex

Instance by Index Key

Так и не понял из того аглицкого описания что таки делаэт эти методы?

Код: vbnet
1.
2.
3.
Set person = ##class(Sample.Person).SSNKeyOpen("111-22-3333",2,.sc)
//
Set success = ##class(Sample.Person).SSNKeyExists("111-22-3333",.id)



Напишите пожалуйста по русски...
...
Рейтинг: 0 / 0
Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
    #38236037
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logistну надо делать $name(^(id))Что это даёт?

Код: plaintext
1.
2.
3.
4.
5.
SAMPLES>w ##class(Sample.Company).NameIdxExists("20",.id)
0
SAMPLES>w $name(^("20"))
^Sample.CompanyI("NameIdx"," 20",20)
SAMPLES>w
id=""
logistя всеравно не понимаю зачем это надо и чем плох стандартный SQLПри Index Idx On Field As SQLUPPER(5); я думаю, ТС просто не хочет делать select %SQLUPPER(Field,5) from table where %ID=1
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Есть ли метод формирующий ключевое выражение индекса класса для экземпляра?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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