powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры?
8 сообщений из 8, страница 1 из 1
Вызов хранимой процедуры?
    #35483517
mys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mys
Гость
Создаю "result set" хранимую процедуру, как написано в кашовом мануале:
http://localhost:57772/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_procedures

Если взять пример из того же мануала:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Class MyApp.Person Extends %Persistent [ClassType = persistent]
{

    /// This procedure returns a set of persons ordered by name
    Query ListPersons(name As %String = "") As %SQLQuery [ SqlProc ]
    {
        SELECT ID, Name
        FROM Person
        ORDER BY Name
    }
}

Как вызвать это процедуру SQL запросом из "портала управления системой"?
...
Рейтинг: 0 / 0
Вызов хранимой процедуры?
    #35483545
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот для примера...

CJIECAPbЕсли и это сильно много, можно сделать так:

Добавляем индекс в ItemsToItems2
Код: plaintext
1.
Index NewIndex3 On (Item1Id, ItemId) [ Type = bitmap ];

А в Items1 создаём хранимую процедуру
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ClassMethod CountDisctinctItem(Item1Id As %String) As %Integer [ SqlProc ]
{
	S res= 0 
	S key=""
	F {
		S key=$O(^User.ItemsToItems2I("NewIndex3",Item1Id,key))
		Q:(key="")
		S res=res+ 1 
	}
	Q res
}

Теперь запрос принимает вид
Код: plaintext
1.
2.
SELECT Id AS Item1Id,Parent AS pId, Param,Name, Items1_CountDisctinctItem(ID) AS ItemsCount
FROM Items1 ORDER BY Param
и выполняется за 4.5 секунды.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Вызов хранимой процедуры?
    #35483553
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там правда тип возврата не такой... :(
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Вызов хранимой процедуры?
    #35483572
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьмите любой ODBC- или JDBC-клиент и сможете вызывать хранимые процедуры.
Я использую WinSQL.

Вадим
...
Рейтинг: 0 / 0
Вызов хранимой процедуры?
    #35483597
mys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mys
Гость
Т.е. вызов подобной процедуры из "портала" или скажем из Caché Managed Provider с помощью класса CacheCommand невозможен. Я правильно понимаю?
...
Рейтинг: 0 / 0
Вызов хранимой процедуры?
    #35483703
CJIECAPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я могу ошибаться (поправьте меня если не прав), но хранимые процедуры, возвращающие несколько значений (ну в смысле несколько строк, как у вас) можно вызывать только через ODBC или JDBC.
...
Рейтинг: 0 / 0
Вызов хранимой процедуры?
    #35483720
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для вызова хранимой процедуры - что возращает результсет, ЕМНИП используется соманда CALL - она работает только в ODBC и JDBC.. что для просмотра результатов вполне достаточно.
...
Рейтинг: 0 / 0
Вызов хранимой процедуры?
    #35484241
mysТ.е. вызов подобной процедуры из "портала" или скажем из Caché Managed Provider с помощью класса CacheCommand невозможен. Я правильно понимаю?
Портал Управления -> SQL -> Просмотр SQL-схем
Находите схему (в вашем случае - MyApp), выбираете раздел "Процедуры".
Выбираете вашу процедуру, нажимаете "Выполнить", задаете при необходимости параметры, и получаете результат.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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