Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / SQL-предикат IN () и параметр / 14 сообщений из 14, страница 1 из 1
17.11.2009, 13:24
    #36314767
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
Есть такой запрос...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Select
	wrk.RepMon_MonthToStr(RepMon) as Month,
	Grading->Name as Grading,
	Title,
	Text
From
	wrk.Stage
Where
	RepMon in (:IdMonth)
Order by
	Grading->Prio,RepPrio,Job,dEnd

Пока передаю ID класса в единичном экземпляре - все работает как нужно. Но в каком виде передать несколько ID?
Делал

Код: plaintext
1.
2.
3.
4.
5.
; так
s id="1,3"
; итак
s id="'1','3'"
s ors=##class(%ResultSet).%New("wrk.Stage.RepMon")
s ok=ors.Execute(id)

в результате список пуст... Как мне такое реализовать?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
17.11.2009, 15:24
    #36315052
Александр Коблов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
krvsa,

Попробуйте глянуть тут -- http://karataev.nm.ru/cache/sqlin.html
...
Рейтинг: 0 / 0
17.11.2009, 15:30
    #36315068
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
Александр Коблов , там например написано

авторНапример
Код: plaintext
select ID from table where color in (:inparam)
и в строке передаваемой через параметр написать "red,blue".

Но моя строка из примера
Код: plaintext
1.
; так
s id="1,3"
не дает нужного эффекта...
...
Рейтинг: 0 / 0
17.11.2009, 15:50
    #36315146
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
нужно смотреть в строну IN %INLIST $lb(1,2)
тут
но уверен что это есть в 2007.1.1
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
17.11.2009, 20:10
    #36315793
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
DAiMor , спасибо... Попробую такое

Код: plaintext
1.
2.
SET northne=$LISTBUILD("VT","NH","ME")
...
WHERE Home_State %INLIST :northne

Но дело осложняется тем, что эти ИДэшки я передаю через УРЛ... Листбилд думается проблематично будетпередать...
...
Рейтинг: 0 / 0
18.11.2009, 07:02
    #36316219
Socratdv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
krvsa DAiMor , спасибо... Попробую такое

Код: plaintext
1.
2.
SET northne=$LISTBUILD("VT","NH","ME")
...
WHERE Home_State %INLIST :northne

Но дело осложняется тем, что эти ИДэшки я передаю через УРЛ... Листбилд думается проблематично будетпередать...
Можно из строки с разделителями сделать строку в формате %List:
Код: plaintext
S northne=$LFS(northne)
...
Рейтинг: 0 / 0
18.11.2009, 07:08
    #36316225
Socratdv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
Запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Select
	wrk.RepMon_MonthToStr(RepMon) as Month,
	Grading->Name as Grading,
	Title,
	Text
From
	wrk.Stage
Where
	RepMon %INLIST :IdMonth
Order by
	Grading->Prio,RepPrio,Job,dEnd
Вызов:
Код: plaintext
1.
2.
s id="1,3"
s ors=##class(%ResultSet).%New("wrk.Stage.RepMon")
s ok=ors.Execute($LFS(id))
...
Рейтинг: 0 / 0
18.11.2009, 09:22
    #36316383
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
Socratdv , спасибо.

Но вот незадача... Нет в нашей версии такой конструкции

Код: plaintext
WHERE Home_State %INLIST :northne
...
Рейтинг: 0 / 0
18.11.2009, 19:13
    #36318267
Александр Коблов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
krvsa Александр Коблов , там например написано

авторНапример
Код: plaintext
select ID from table where color in (:inparam)
и в строке передаваемой через параметр написать "red,blue".

Но моя строка из примера
Код: plaintext
1.
; так
s id="1,3"
не дает нужного эффекта...
Вы, кажется, не дочитали статью. Там написано, что так работать не будет. А будет работать, если создать свою хранимую процедуру, код которой там приведён, и её использовать вместо IN.
...
Рейтинг: 0 / 0
18.11.2009, 20:23
    #36318359
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
Александр Коблов , с процедурой-то понятно как сделать...
...
Рейтинг: 0 / 0
19.11.2009, 06:25
    #36318688
Socratdv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
krvsa Socratdv , спасибо.

Но вот незадача... Нет в нашей версии такой конструкции

Код: plaintext
WHERE Home_State %INLIST :northne


А какая версия?
...
Рейтинг: 0 / 0
19.11.2009, 08:38
    #36318782
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
Socratdv , у меня в подписи в самом первом сообщении темы.

В документации нет примера как по ссылке DAiMor . Да и Студия, при написании запроса, подсвечивает как ошибку.
...
Рейтинг: 0 / 0
19.11.2009, 08:53
    #36318801
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
кстати то что студия подсвечивает как ошибку не факт что оно есть
в документации к 2007.1.3 в встречается в одном месте упоминание про %INLIST

у меня в студии к cache 5.0 подсвечивается %NOTRIGGER как ошибка в sql, хотя в документации он есть и код компилится и работает как надо

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
19.11.2009, 09:13
    #36318830
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-предикат IN () и параметр
DAiMorто что студия подсвечивает как ошибку не факт что оно есть

Если подсветка не убирается и после перезагрузки класса/программы - нам такой синтаксис не подходит.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / SQL-предикат IN () и параметр / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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