Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите плиз нубу / 24 сообщений из 24, страница 1 из 1
28.08.2008, 13:53
    #35510855
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Добрый день товарищи кашевары
В общем проблема такая:
передаю по ссылке с одной цсп на другую значение ID.
на второй цсп у меня такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<csp:query name="vibor" classname="User.books" queryname="vibor" P1="">
<csp:while condition=vibor.Next()>
<tr>
<!-- <td>#(query.Get("ID"))# </td> -->
<td>#(vibor.Get("Autor"))# </td>
<td>#(vibor.Get("nazvanie"))# </td>
<td>#(vibor.Get("izdatelstvo"))# </td>
<td>#(vibor.Get("cena"))# </td>
</tr>
</csp:while>
</table>

Запрос в классе выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
Query vibor(id As %Integer) As %SQLQuery(CONTAINID =  1 )
{
SELECT %ID,Autor,cena,izdatelstvo,nazvanie FROM books
 WHERE (%ID = :id)
}


Объясните мне плиз мои ошибки, и помогоите вывести результат запроса по переданному Id.
Заранее благодарю..
...
Рейтинг: 0 / 0
28.08.2008, 13:58
    #35510871
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
и забыл исчо..
в P1="" у меня стоит так P1='#(%request.Get("Id"))#'
...
Рейтинг: 0 / 0
28.08.2008, 14:07
    #35510910
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
LcFОбъясните мне плиз мои ошибки
Так ты же не написал какие они у тебя...

Например вот так напиши (как в документации)

Код: plaintext
<csp:while condition="vibor.Next()">
...
Рейтинг: 0 / 0
28.08.2008, 15:25
    #35511214
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
можно поподробней.
Бо нифига чего то у меня не выходит.Я немогу догнать как мне построить запрос в котором в секции Where будет сравниваться Id с переданным параметром, а после на основе этого запроса будут выводиться данные.
...
Рейтинг: 0 / 0
28.08.2008, 16:01
    #35511321
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Вот пример для "не классового запроса"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<script language=SQL name=query P1='%session.Data("UserID")'>
SELECT DateOfPurchase,ItemName,Price
FROM MyApp.Purchases
WHERE UserID = ?
ORDER BY DateOfPurchase
</script>
<hr>
Items purchased by: <b>#(%session.Data("UserID"))#</b>
<br>
<table>
<tr><th>Date</th><th>Item</th><th>Price</th></tr>
<csp:while condition="query.Next()">
<tr>
<td>#(..EscapeHTML(query.GetData( 1 )))#</td>
<td>#(..EscapeHTML(query.GetData( 2 )))#</td>
<td>#(..EscapeHTML(query.GetData( 3 )))#</td>
</tr>
</csp:while>
</table>
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
28.08.2008, 16:19
    #35511369
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Уважаемый krvsa.
Этот пример с туториала я просматривал и пробовал переделать, но ничего не вышло.
код такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<script language=SQL name=query2 P1='%session.Data("Id")'>
SELECT %ID,Autor,nazvanie,izdatelstvo,cena FROM books
WHERE %ID = ?
ORDER BY %ID
</script>
<hr>
Items purchased by: <b>#(%session.Data("Id"))#</b>
<br>
<table>
<tr><th>Id</th><th>Autor</th><th>nazvanie</th><th>izdatelstvo</th><th>cena</th></tr>
<csp:while condition="query2.Next()">
<tr>
<td>#(..EscapeHTML(query2.GetData( 1 )))#</td>
<td>#(..EscapeHTML(query2.GetData( 2 )))#</td>
<td>#(..EscapeHTML(query2.GetData( 3 )))#</td>
<td>#(..EscapeHTML(query2.GetData( 4 )))#</td>
<td>#(..EscapeHTML(query2.GetData( 5 )))#</td>
</tr>
</csp:while>
</table>

каша выдает такое

Error: <UNDEFINED>zOnPageBODY+25^csp.del.1
ErrorNo: 5002
CSP Page: /csp/user/del.csp
Namespace: USER
Class: csp.del
Routine: csp.del.1
Location: zOnPageBODY+25
...
Рейтинг: 0 / 0
28.08.2008, 16:23
    #35511386
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
To LcF
Посмотрите пример в C:\YourCache\CSP\samples\cinema\ShowTimes.csp

Для Вашего случая можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<script language="sql" name=vibor p1=#(%request.Get("Id"))#>
SELECT %ID,Autor,cena,izdatelstvo,nazvanie FROM User.books WHERE %ID = ?
</script>
<csp:while condition="vibor.Next()">
<tr>
<!-- <td>#(query.Get("ID"))# </td> -->
<td>#(vibor.Get("Autor"))# </td>
<td>#(vibor.Get("nazvanie"))# </td>
<td>#(vibor.Get("izdatelstvo"))# </td>
<td>#(vibor.Get("cena"))# </td>
</tr>
</csp:while>
</table>
или так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<csp:query name="vibor" classname="User.books" queryname="vibor" P1=#(%request.Get("Id"))#>
<csp:while condition=vibor.Next()>
<tr>
<!-- <td>#(query.Get("ID"))# </td> -->
<td>#(vibor.Get("Autor"))# </td>
<td>#(vibor.Get("nazvanie"))# </td>
<td>#(vibor.Get("izdatelstvo"))# </td>
<td>#(vibor.Get("cena"))# </td>
</tr>
</csp:while>
</table>
Соответственно вызывать эту страницу необходимо с параметром, например:
http://.../test.csp?Id=1
...
Рейтинг: 0 / 0
28.08.2008, 16:29
    #35511410
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
А чем этот код отличается от моего первого?
...
Рейтинг: 0 / 0
28.08.2008, 16:31
    #35511416
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
LcFError: <UNDEFINED>zOnPageBODY+25^csp.del.1
Что там в той стороке-то?
...
Рейтинг: 0 / 0
28.08.2008, 16:39
    #35511433
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Пробуй полностью указать имя таблицы .

Для класса User.book - это соотвественно SQLUser.book а не просто book
...
Рейтинг: 0 / 0
28.08.2008, 16:43
    #35511441
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
голая строка
...
Рейтинг: 0 / 0
28.08.2008, 16:45
    #35511446
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
PtnПробуй полностью указать имя таблицы .

Для класса User.book - это соотвественно SQLUser.book а не просто book


пробовал
...
Рейтинг: 0 / 0
28.08.2008, 16:46
    #35511447
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
сча выыще выводит голую страницу(т.е. даж ошибку непоказывает,просто голый лист)
...
Рейтинг: 0 / 0
28.08.2008, 16:53
    #35511470
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Вот например рабочий пример из семплсов...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
<!-- Copyright (c) 2001 InterSystems Inc. ALL RIGHTS RESERVED. -->
<csp:class description="Demo of using <B>SCRIPT LANGUAGE=SQL</B> tag to run an SQL Query.">

<html>

<head>
</head>

<body bgcolor="#CCCCFF">

<!-- display standard sample template using a custom tag -->
<isc:SAMPLE title='<script language="SQL"> Tag Sample'>
This sample uses the <b><script language="SQL"></b> tag to execute a dynamic SQL query
against the Caché Object Database. The results are displayed in a table
using the <b><csp:loop></b> tag to iterate over the resulting rows and columns.
<br>To execute a different query, enter it below and press <b>Go</b>.
</isc:SAMPLE>

<!--     Define a ResultSet based on a query
    In this case we are getting a query at run-time
    from user input.
-->
<script language="SQL" name="query" P1='#($get(%request.Data("P1",1),"A"))#'>
#($get(%request.Data("QUERY", 1 ),"SELECT Name FROM Sample.Person"))#
</script>

<!-- CREATE FORM FOR EDITING SQL QUERY -->

<form name="theForm">
<table cellspacing="5">
<tr>
    <td align="left"><b>SQL Query:</b>
    <br><textarea cols="80" name="QUERY" rows="4">#($get(%request.Data("QUERY", 1 ),"SELECT Name FROM Sample.Person"))#</textarea></td>
    <td><input name="btnSubmit" type="submit" value=" Go "></td>
</tr>
</table>
</form>

<hr>

<!-- CREATE A TABLE TO DISPLAY THE RESULTS -->

<table bgcolor="#DDDDFF" border="1">
<tr>

    <!-- LOOP OVER COLUMNS TO CREATE COLUMN HEADERS -->
    <csp:while condition="(col<query.GetColumnCount())" counter="col">
    <th align="left"><b>#(query.GetColumnName(col))#</b></th>
    </csp:while>
</tr>

<!-- NOW LOOP OVER ALL ROWS IN THE RESULT SET -->
<csp:while condition="query.Next()" counter="row">

<!-- USE ALTERNATING STYLES FOR ROW FOR ZEBRA EFFECT (# is modulo operator) -->
<tr class="#($S(row#2:"DarkRow",1:"LightRow"))#">

    <!-- LOOP OVER COLUMNS TO SHOW DATA -->
    <csp:while condition="(col<query.GetColumnCount())" counter="col">
    <td>#(query.GetData(col))#</td>
    </csp:while>
</tr>
</csp:while>
</table>

</body>
</html>
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
28.08.2008, 16:54
    #35511471
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Можно убрать лишнее... Добавить свое... Глядиш и заработает!
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
28.08.2008, 16:55
    #35511474
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
To LcF
Наверное, ничем, кроме наличия кавычек в P1 и полного названия таблицы, ведь опубликована лишь часть
кода. Приведенный мной код у меня работает.

У Вас (для первого примера) просто не выводятся данные или возникает какая-то конкретная ошибка?
Если не выводятся данные, значит либо не передается входной параметр, либо его значение недействительно.
...
Рейтинг: 0 / 0
28.08.2008, 17:01
    #35511495
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
возникает ошибка

такая же как и в том коде который ты мне дал.

Error: <UNDEFINED>zOnPageBODY+25^csp.del.1
ErrorNo: 5002
CSP Page: /csp/user/del.csp
Namespace: USER
Class: csp.del
Routine: csp.del.1
Location: zOnPageBODY+25

параметр передается

<script language="javascript">
ID=#(%request.Get("Id"))#;
alert(ID);
</script>

выводит Id который я передаю.
...
Рейтинг: 0 / 0
28.08.2008, 17:14
    #35511534
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Тогда стоит опубликовать весь код страницы.
Либо сделать простой пример страницы, убрав все лишнее, что не относится к сути проблемы, и попробовать его запустить. Если ошибка останется, будем разбираться.
...
Рейтинг: 0 / 0
28.08.2008, 17:25
    #35511567
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
я и прислал почти полный код страницы(все кроме тегов HTML body и title)
всем спасибо за участие в теме. Я конечно непонял в чем прикол но я прописал так и все заработало
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<script language=SQL name="query">
SELECT *  FROM SQLUser.books where Id=#(%request.Get("Id"))#
</script><table border= 1  bgcolor="">

	<csp:while condition=query.Next()>
<tr>
<!-- <td>#(query.Get("ID"))# </td> -->
<td>#(query.Get("Autor"))# </td>
<td>#(query.Get("nazvanie"))# </td>
<td>#(query.Get("izdatelstvo"))# </td>
<td>#(query.Get("cena"))# </td>
</tr>
</csp:while>

</table>
...
Рейтинг: 0 / 0
29.08.2008, 04:24
    #35512148
logist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Дык, Вы переменную передаете в %request, а считываете из %session

=Сергей Шутов (logist)
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.08.2008, 09:50
    #35512306
LcF
LcF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
to logist

первый пример который я предоставил был request, далее пробовал использовать session.
Может я и не прав, но вы невнимательно просматривали содержание топика
...
Рейтинг: 0 / 0
29.08.2008, 09:58
    #35512327
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
С параметром было бы так

Код: plaintext
1.
2.
<script language=SQL name="query" P1='#(%request.Get("Id"))#'>
   SELECT *  FROM SQLUser.books where Id=?
</script>

А ваш "прикол" в том, что данные после компиляции страницы будут выглядеть как "обычное" значение... Т.е. нечто такое

Код: plaintext
SELECT *  FROM SQLUser.books where Id= 10 
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
29.08.2008, 10:17
    #35512372
logist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Приветствую.

> первый пример который я предоставил был request, далее пробовал
> использовать session.
> Может я и не прав, но вы невнимательно просматривали содержание топика

Форум мне приходит на почту, так что - что вижу, на то и отвечаю... Во всяком
случае, ошибки UNDEFINED у Вас связаны с использованием переменной %session. Что
у Вас не работало в первом примере, Вы так и не написали.

=Сергей Шутов (Logist)
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.08.2008, 10:20
    #35512379
logist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите плиз нубу
Привет.

> А ваш "прикол" в том, что данные после компиляции страницы будут
> выглядеть как "обычное" значение... Т.е. нечто такое
> SELECT * FROM SQLUser.books where Id=10
Не будут.

=Сергей Шутов (logist)
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите плиз нубу / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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