Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
Ни фига не могу найти в документации толковых примеров по вычислимым полям в SQL Cache. Проблема в следующем: Есть класс с сылкой на parent (тот же самый класс). Нужно создать вычислимое поле fullName = parent.fullName_name Обратиться нарямую через SQL к свойствам parent при вычислении свойств не получается - ругается матом при выполнении SQL выражения: Код: plaintext Код: plaintext Есть ли какой-нибудь способ быстрого вычисления таких полей? Я смог решить проблему только вызовом метода класса, в который передаю parent, там поднимаю объект на память, забираю св-во и возвращаю. Это совсем не айс. Хотелось бы обойтись без поднятия объекта и вызова метода класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2008, 07:09 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
Если я правильно все понимаю - не сильно-то и получится сделать по-другому. Если делать так, как хотите вы - эти же действия произведет за вас Cache' - не более того ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2008, 07:17 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
В методе класса совсем не обязательно использовать объектный доступ. Напишите туда SQL запрос --- ну или нужен совсем айс - обращение на прямом доступе - только к методу нужно будет прикрепить БОООЛЬШУЮ табличу, мол если меняете структуру хранения - пожулусто исправьте этот метод ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2008, 07:55 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
Может не очень изящно, но как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. -------- Cache for Windows (x86-32) 2008.1 (Build 401U) Tue Feb 26 2008 11:46:52 EST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2008, 11:06 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
Socratdv Код: plaintext Код: plaintext Не пробовал, но может статься, что все дело в том, что вы не указали ##this или .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2008, 01:31 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
На основе предидущего примера сделал без метода класса: Код: plaintext Все же хотелось бы вычислять поля без поднятия объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2008, 04:31 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
Мдя.... %OpenId без параметров, хотя следовало бы писать %OpenId({parent},0) что бы на блокировки не напоротся. parent за собой опять же никто не закрывает ... ляпота. Кто мешает в методе класса использовать SQL ? У нас так вообще у каждой таблицы есть специальный класс-метод PropertyByID(ID,NameProperty) - c одним единственным SQL. Очень полезно порой. Поле соответственно выглядиит так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2008, 08:40 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
> У нас так вообще у каждой таблицы есть специальный класс-метод > PropertyByID(ID,NameProperty) - c одним единственным SQL. Очень полезно > порой. > > Поле соответственно выглядиит так > > Property fullName As %String [ Calculated, SqlComputeCode = { > Set {fullName}=##class(Имя парент класса).PropertyByID({%ID},"fullname") }, SqlComputed ]; А смысл? Что этот метод делает? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2008, 12:36 |
|
||
|
Вычислимые поля
|
|||
|---|---|---|---|
|
#18+
Как я уже описал он выдает - по ID Объекта знаечение его поля, может возращать как указанное значение, так и все поля скопом в виде подмассива, с названием полей в качестве узлов (что можно использовать для "дампа" записи). Нужен - для того что бы в различных местах не прибегать к открытию объектов, и тем более к использованию встроенного SQL - который в случае изменения конечного класса, еще и перекомпилировать можно. SQL запрос там внутри один - написан на генераторе, встроен в базовый системный класс и каши не просит. При использовании этого метода вы понижаете вероятность получения ошибки UNDEFINED или NULLOREF - в ситуациях, подобной описанной. Плюс уровень блокировки у вас известен заранее. PS: естественно IMXO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2008, 15:05 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35330196&tid=1558878]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
90ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 456ms |

| 0 / 0 |
