Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры? / 8 сообщений из 8, страница 1 из 1
12.08.2008, 16:32
    #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
12.08.2008, 16:42
    #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
12.08.2008, 16:44
    #35483553
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры?
Там правда тип возврата не такой... :(
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
12.08.2008, 16:49
    #35483572
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры?
Возьмите любой ODBC- или JDBC-клиент и сможете вызывать хранимые процедуры.
Я использую WinSQL.

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


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