powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Запрос по интервалу дат!
16 сообщений из 16, страница 1 из 1
Запрос по интервалу дат!
    #36654214
kraus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Интерисует вопрос:

Как передать в запрос SQL значения объектов с формы(начальную и конечную дату).
Запрос простой(на выборку с BETWEEN).
Сам запрос написан в классе. Форма на csp.
Проблема в том что недавно начал работать с кэшем...)

Надеюсь на Вашу помощь. Спасибо.
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36654402
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kraus,

Если недавно начали, не связывайтесь с csp. Используйте ZEN - там об этом за нас подумали ;)
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36654482
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krausКак передать в запрос SQL значения объектов с формы(начальную и конечную дату).
Запрос простой(на выборку с BETWEEN).
Сам запрос написан в классе. Форма на csp.
Как вариант...
- "Перехватить" некое событие на странице
- Вызвать JS-функцию
- В ней прочитать значения нужных полей формы
- Вызвать кащейское гиппер событие
Код: plaintext
var val=#server(<тут_написать_вызов_запоса>(тут_указать_параметры))#
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36654487
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя этоже запрос! Не метод...
Тогда нужно создать метод
- либо на странице
- либо в неком классе
который и будет выполнять запрос. Тебе лишь нужно вызвать метод и передать ему параметры

Код: plaintext
var val=#server(<тут_написать_вызов_метода>(тут_указать_параметры))#
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36654515
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krausЗдравствуйте.

Интерисует вопрос:

Как передать в запрос SQL значения объектов с формы(начальную и конечную дату).
Запрос простой(на выборку с BETWEEN).
Сам запрос написан в классе. Форма на csp.
Проблема в том что недавно начал работать с кэшем...)

Надеюсь на Вашу помощь. Спасибо.
Объекты на форме имеют свои имена, поэтому их значения передадутся как параметры запроса при нажатии на кнопку submit (если речь идет о форме, то чаще всего так и делается). Допустим, объекты - это текстовые поля DateBegin и DateEnd. Тогда код будет примерно следующий:
Код: plaintext
1.
2.
3.
4.
5.
<FORM METHOD=post>
   <P>Начальная дата: <INPUT TYPE=text NAME=DateBegin VALUE="#($zdt($h,3,1))#"></P>
   <P>Конечная дата: <INPUT TYPE=text NAME=DateEnd VALUE="#($zdt($h,3,1))#"></P>
   <INPUT TYPE=submit NAME=ExecuteSQL VALUE="Выполнить запрос">
</FORM>
А в методе OnPreHTTP или OnPage (или где у вас вызывается запрос) будет примерно следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
   if ($d(%request.Data("ExecuteSQL", 1 )))
   {
      s dateBegin = %request.Data("DateBegin", 1 )
      s dateEnd = %request.Data("DateEnd", 1 )
      s resultSet = ##class(%ResultSet).%New("%MyClass:MyQuery")
      s sc = resultSet.Execute(dateBegin, dateEnd)
      ...
   }
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36659241
kraus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, что отозвались!

Оказывается все просто. Сделал через вызов запроса:

<csp:query name="Запрос" className="Класс" queryName="ЗапросКласса" p1 p2>
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36688309
kraus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще одна не большая проблема. Как мне переменную вставить в серверное выражение. Так как на примере работать не хочет ругается. Если вместо 'k' ставлю цифру все работает.



<script language='javascript'>
function Find()
{
k=1;
var kk='#(^GLB(k))#';

}
</script>
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36688353
acreb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<script language='javascript'>
function Find(k)
{
var kk='#(^GLB(k))#';

}
</script>
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36688382
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovЕсли недавно начали, не связывайтесь с csp. Используйте ZEN - там об этом за нас подумали ;)
Столкнулся с проектом на Zen... Если начали давно, не связывайтесь с ним. Используйте csp и стандарты ;)
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36689068
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefintkolesovЕсли недавно начали, не связывайтесь с csp. Используйте ZEN - там об этом за нас подумали ;)
Столкнулся с проектом на Zen... Если начали давно, не связывайтесь с ним. Используйте csp и стандарты ;)
Да куда вы денетесь... :)
Если начали давноо... Используйте глобалы, терминал и WebLink и соответствующие стандарты.
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36689141
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
acreb
Код: plaintext
1.
2.
3.
4.
5.
6.
<script language='javascript'>
function Find(k)
{
var kk='#(^GLB(k))#';

}
</script>

Так работает?
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36689143
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня например такое

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<html>
<head>
<script language='javascript'>
function Go(N) {
	var val=#(^tmpKSA(N))#
	alert(val)
}
</script>
</head>
<body>
<form>
	<input name="New" type="Button" value="Go" onClick='Go(1);'>
</form>
</body>
</html>

не работает. Не определена переменная N...
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36689148
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другое дело гиппер событие

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<html>
<head>
<script language='javascript'>
function Go(N) {
	var val=#server(..GetVal(N))#
	alert(val)
}
</script>
</head>

<csp:method name='GetVal' arguments='N:%String' returntype='%String'>
	q ^tmpKSA(N)
</csp:method>

<body>
<form>
	<input name="New" type="Button" value="Go" onClick='Go(1);'>
</form>
</body>
</html>

Вот оно работает!
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36689452
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

так и должно...
#(^tmpKSA(N))# - на момент формирования страницы
#server(..GetVal(N))# - на момент исполнения по кнопке (по событию)
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36689489
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shu , так дело-то еще и в том, что в

Код: plaintext
#(^tmpKSA(N))#

N кащейская переменная, не скриптовая...

Авот в

Код: plaintext
#server(..GetVal(N))#

как раз скриптовая. Что и требовалось kraus .
...
Рейтинг: 0 / 0
Запрос по интервалу дат!
    #36691138
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shu,
Учитывая, что Zen наследуется от CSP, то я буду просто выше этого ;)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Запрос по интервалу дат!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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