Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обработка объектов в SQL запросе
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Столкнулся с проблемой и, к сожалению, сам разобраться не смог(в силу ли ограниченности сроков, ну или по собственной глупости, не знаю), поэтому прошу совета. Возможно ли используя реляционную модель доступа получить атрибуты объектов, сохраненных в списке %List в одной из колонок таблицы. Иными словами, обращаюсь к некоей таблице Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Ну как бы из списка их достать проблемы нет: Код: plaintext В принципе доступ к атрибутам этих объектов именно в запросе - не самоцель, вполне приемлем вариант, когда объект будет читаться как массив байт, а уже в приложении ( приложение разрабатывается на джаве) как-либо обработан, но и это вариант реализовать не смог, поскольку столкнулся с cache' в первый раз и средства работы с данной субд, прямо говоря, не знаю. Буду признателен за любые советы или ссылки на соответствующую документацию или литературу (пара перелистанных учебных курсов, не помогли, поскольку освещали либо COS, либо Studio, а интересует программный доступ и, желательно, через реляционную модель, дизайн-то менять не охота) Версия cache' - 2010.2.4.802.1 Заранее спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2011, 06:08 |
|
||
|
Обработка объектов в SQL запросе
|
|||
|---|---|---|---|
|
#18+
shilo_tebe , Дано: Class test.b Extends %SerialObject { Property p1 As %String(MAXLEN = 200); Property p2 As %Date; Property p3 As %Date; Property p4 As %String; Property p5 As %String; Property p6 As %String; Property p7 As %String; } Class test.a Extends %Persistent { Property field As list Of test.b; ClassMethod Fill() { do ##class(test.a).%KillExtent() set a=##class(test.a).%New() for i=1:1:10 { set b=##class(test.b).%New() set b.p1="p1_"_i set b.p2=i set b.p3=i+1 set b.p4="p4_"_i set b.p5="p5_"_i set b.p6="p6_"_i set b.p7="p7_"_i do a.field.Insert(b) } do a.%Save(0) } } Получение значения поля p5 из объекта под седьмым номером в списке, хранящегося в поле field: select $LIST($LIST($LIST(field, 7),1),5) from test.a -- вернётся "p5_7" PS: посмотрите в Портале как хранятся данные в глобале ^test.aD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2011, 15:26 |
|
||
|
Обработка объектов в SQL запросе
|
|||
|---|---|---|---|
|
#18+
servit, Спасибо! Подробно расскажу о том, как воспользовался вашим советом, когда буду иметь доступ к базе, а именно часов через 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2011, 19:09 |
|
||
|
Обработка объектов в SQL запросе
|
|||
|---|---|---|---|
|
#18+
servit, Еще раз спасибо, разобрался в вашем примере, действительно все оказалось достаточно просто, однако не совсем очевидно, для человека, с каше столкнувшегося в первый раз (т.е меня). Честно сказать начинаю осознавать, что объектная и реляционные технологии не так уж очевидно смешиваются, особенно в сознании людей))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2011, 05:37 |
|
||
|
Обработка объектов в SQL запросе
|
|||
|---|---|---|---|
|
#18+
shilo_tebe , Одно уточнение по ответу servit : Данный способ работает только для объектов, унаследованных от %SerialObject, т.е. хранящихся непосредственно в записи таблицы test.a. Если же элементом списка является ссылка (ID) на внешний объект (хранимую таблицу), то обратиться напрямую (через $LIST или стрелку) к атрибутам этого объекта нельзя. В этом случае нужно будет пользоваться стандартными механизмами связывания таблиц через SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2011, 08:02 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37474985&tid=1557629]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 507ms |

| 0 / 0 |
