powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / запрос типа SQL к обьектам
5 сообщений из 5, страница 1 из 1
запрос типа SQL к обьектам
    #37702635
alex171069
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте уважаемые господа знатоки Cache!
Не могу не обратится к вам снова, как говорится более не к кому.
Заранее прошу прощения...

Хочется узнать есть ли в славной системе Cache такой инструмент(процедура метод или системная команда) который бы позволял бы произвести выборку данных из объектов по параметрическому запросу как в SQL select "нужные поля" from "таблицы" where "условия по которым произвожу отбор"

принцип тот же но средствами Классов и объектов .....

Насколько я разобрался после того как получим доступ к объекту Set var=##class(NameSpase.Class1).%OpenId(Номер OID)

Выходит если номер OID не знаешь то и не получишь объекта !?
В SQL прописал в условиях Where name="Петя" и все селект отберет все записи в которых в поле name= петя и все!
А В ОБЪЕКТАХ выполнить подобный запрос по параметрам ?
...
Рейтинг: 0 / 0
запрос типа SQL к обьектам
    #37702735
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex171069,

варианты:
1. построить индексы по искомым полям, потом бежать по ним $O() и получать нужный ID
2. можно бежать по существующим ID
а) через %OpenId(ID) проверять на "ИСКОМОЕ ПОЛЕ" "УСЛОВИЕ" "ИСКОМОЕ ЗНАЧЕНИЕ"
б) определить в какой позиции будет записываться "ИСКОМОЕ ПОЛЕ" просмотрев стратегию хранения (или как то програмно определить эту позицию) и через $LG($g(^моя_ГлобальD(ID)),N_искомого_поля) "УСЛОВИЕ" "ИСКОМОЕ ЗНАЧЕНИЕ"

индексы самый оптимальный вариант
...
Рейтинг: 0 / 0
запрос типа SQL к обьектам
    #37702957
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глобалы явно не выход.

А чем не нравится sql?
...
Рейтинг: 0 / 0
запрос типа SQL к обьектам
    #37703435
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex171069,

Есть еще один вариант получения ссылки OREF на экземпляр по значению уникального индекса.
Пусть в классе TestClass есть следующее:

Код: c#
1.
2.
3.
4.
...
property Name as %String ;
Index NameI On Name [ Unique ];
...



Для уникальных индексов Cache создает скрытый метод класса для доступа к экземпляру по значению индекса.

И можно обратиться к экземпляру класса так:

Код: c#
1.
set ex=##class(TestClass).NameIOpen("Вася")



А в остальном согласен с Блоком А.В.: грех не пользоваться оптимизатором SQL.

Для узких мест, когда SQL-оптимизатор не справляется, берите в умелые руки $Order и $Query - и обрящете.
...
Рейтинг: 0 / 0
запрос типа SQL к обьектам
    #37704325
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex171069,

%ObjectSelectMode Property

Пример:
#include %occStatus

set oldNS=$znspace
set myquery="SELECT TOP 5 %ID,Name,Age FROM Sample.Person"

znspace "SAMPLES"

set st = ##class(%SQL.Statement).%New()
set st.%ObjectSelectMode=1
set qSC = st.%Prepare(myquery)
if $$$ISOK(qSC) {
  set rs = st.%Execute()
  while rs.%Next() {
    write "Name=",rs.Name,?30,
          "Age=",rs.Age,?38,
          "Home State:",rs.ID.Home.State,!
  }
  write !,"End of data"
  write !,"Total row count=",rs.%ROWCOUNT
}else{
  write "%Prepare failed",!,$System.Status.GetErrorText(qSC,"ru")
}

znspace oldNS
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / запрос типа SQL к обьектам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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