Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

変数 Query の設定

最後に、Query 変数の値を設定します。CatName 値の長さが 0 の文字列でない場合、CatID はデータベースの FilmCategory インスタンスを取得します。次に、TopCategory クエリを実行します。CatName 値の長さが 0 の文字列である場合は、Cookie がなかったか、その値が FilmCategory インスタンスの ID に対応していませんでした。いずれの場合も、 TopFilms クエリを実行します。

初めに定義したように TopFilms クエリはパラメータを取らないことに注意してください。このコードはパラメータを TopFilms に渡そうとするため、“ダミー” パラメータを受け入れるようにクエリを変更する必要があります。ダミー・パラメータは、クエリを実行するときに実際には使用されないパラメータです。“[演習]” グラフィックをクリックし、変更された TopFilms クエリを表示します。

generated description: handson.gif

—TopPicks.csp—
TopPicks.csp
<html> <body>
<script language="cache" runat="server">
    set CatID = %request.GetCookie("CacheCinemaLastCategory")
    set CatName = ""
    if (CatID '= "") {
        set Cat = ##class(Cinema.FilmCategory).%OpenId(CatID)
        if (Cat '= "") {
            set CatName = Cat.CategoryName
        }
    }
    if (CatName '= "") {
        set Query = "TopCategory"
    } else {
        set Query = "TopFilms"
    }

</script>
<font color="#0000FF" size="+2"><b>Today's #(CatName)# Top Picks </b></font>
<table border=0>
<csp:query 
        name=FilmList 
        classname="Cinema.Film" 
        queryname='#(Query)#' P1=#(CatID)#>
<csp:while condition="FilmList.Next()"> ... </csp:while>
</table>
</body> </html>
FeedbackOpens in a new tab