Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
Как написать запрос класса на COS. В документации дан пример на SQL, но из этого примера не видно, как реализовать нечто подобное на COS. Или ткните, где искать в документации, а то я что-то найти не могу. Виктор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 22:22 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
см. http://docs.intersystems.com/cache20071/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_queries#GOBJ_C2481 Примеры есть например в пакете %Dictionary, названия классов заканчиваются на Query =Сергей Шутов (logist) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 05:41 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
Hisbreht VictorКак написать запрос класса на COS. Я что-то ничего не понял... Что нужно-то? Сделать запрос в классе (классовый запрос)? Сделать запрос к классу на COS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 08:59 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
Формулировка вопроса не совсем четкая, но вот еще есть на эту тему, может чем поможет. http://karataev.nm.ru/cache/sqlin.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 11:14 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
ну если я правильно поняла, надо сделать так, чтобы результат работы метода можно было запихнуть в sql запрос? если так, то это можно сделать след. образом: пишем метод . Главное чтобы у него был [SqlProc] Class Test.Class Extends %Persistent { ClassMethod MethodTest(par) As %String [SqlProc] { // тут что-нить делаем и возвращаем например строку. } } далее тогда в sql запросе можно будет вызывать этот метод: select * from table where str=(Test.Class_MethodTest('какая-нить строка')='то что возвращает метод') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 16:46 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
Hisbreht VictorКак написать запрос класса на COS. В документации дан пример на SQL, но из этого примера не видно, как реализовать нечто подобное на COS. Или ткните, где искать в документации, а то я что-то найти не могу. Виктор Если на COS без &sql, то может просто пользовать класс %ResultSet. set a="1,2,222,3333" ... d rs.Prepare("select .... in ("_a_")") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 18:19 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за ответы, есть интересные моменты, которыми можно воспользоваться. ну яФормулировка вопроса не совсем четкая Формулировка - это, конечно, да. Долго вспоминал, как все это правильно называется. Да еще неверно перевел документацию на английском (от усталости, наверное). Попробую отдохнувши более четко сформулировать вопрос. Точнее, он выливается в серию вопросов. Есть запрос вида SELECT a FROM Table WHERE b IN (список). Есть мысль, классу Table нарисовать функцию (метод или еще что там), которая будет возвращать некоторое значение, которое можно подставить на место списка, т.е. что-то вроде SELECT a FROM Table WHERE b IN (Table_GetList(x)). Причем, насколько я понимаю, GetList не должен возвращать просто строку, разделенную на элементы неким символом. Возможно ли это в принципе? Если возможно, то как это сделать? Правильно ли я понял, что запрос класса (в документации Class Queries) можно использовать таким образом? Или это можно реализовать с помощью метода, возвращающего значение типа ResultSet? Похоже на запрос класса (он тоже ResultSet возвращает), но, насколько я понимаю, это уже немного другое явление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 20:38 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
Привет. > Правильно ли я понял, что запрос класса (в документации Class Queries) > можно использовать таким образом? Да, можно. > Или это можно реализовать с помощью метода, возвращающего значение типа > ResultSet? Похоже на запрос класса (он тоже ResultSet возвращает), но, > насколько я понимаю, это уже немного другое явление. Нет, так не получится. К тому же %ResultSet всеравно можно сформировать только по результату выполнения запроса. Мы у себя делаем временную таблицу, например, admin.TempTable, с хранением в CacheTemp($J) или Process Private Global (напр. ^||admin.TempTableD и т.д.) В ней - два поля TempKey (на случай, если понадобится несколько таблиц. Можно не заполнять) и TempValue, плюс индекс по TempKey Потом перед запросом засовываем в нее значения обычным способом, предварительно выполнив do ##class(admin.TempTable).%KillExtent() При этом убиваются данные только текущего процесса, данные остальных процессов остаются. Соответственно, запрос будет вида SELECT a FROM Table WHERE b IN (select TempValue from TempTable) или SELECT a FROM Table WHERE b IN (select TempValue from TempTable where TempKey='MyClass.MyMethod') Любви. logist (Сергей Шутов) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 04:12 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
To Hisbreht Victor : Вы не указали Вашу версию Caché. В последних версиях появился новый предикат %INLIST Можно писать, например, так: Код: plaintext 1. 2. 3. 4. Вам также могут пригодиться функции $LISTFROMSTRING , $LISTTOSTRING IDs можно получить еще так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 10:45 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
Hisbreht VictorПричем, насколько я понимаю, GetList не должен возвращать просто строку, разделенную на элементы неким символом. Если вернет строку типа Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 10:45 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
автор> Или это можно реализовать с помощью метода, возвращающего значение типа > ResultSet? Похоже на запрос класса (он тоже ResultSet возвращает), но, > насколько я понимаю, это уже немного другое явление. Нет, так не получится. К тому же %ResultSet всеравно можно сформировать только по результату выполнения запроса. Какая разница че методу возвращать, хоть %ResultSet. Classmethod a(in) as %ResultSet { s rs=##class(%ResultSet).%New() d rs.Prepare(..._in_...) d rs.Execute() q rs } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 08:20 |
|
||
|
Функция или процедура, возвращающая то, что можно подсунуть в SQL предикат IN
|
|||
|---|---|---|---|
|
#18+
> Нет, так не получится. К тому же %ResultSet всеравно можно сформировать > только > по результату выполнения запроса. > Какая разница че методу возвращать, хоть %ResultSet. В исходном сообщении результаты работы метода собирались использовать в другом запросе. Для методов, возвращающих Resultset, это невозможно. Любви. logist (Сергей Шутов) ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 05:43 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=72&tid=1558953]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 362ms |

| 0 / 0 |
