WAP中的ASP技术(四)

  • 来源: 互联网 作者: 若水   2008-03-17/11:14
  • 选择电影院和上映时间

    这部分代码让用户来选择看什么时间的电影,所有的记录根据前一页所选的电影来决定。在这里来选择电影院和上映时间.

    movie_id = Request("movie")

    sqlQuery = "SELECT title FROM movie WHERE Movie_id = " & movie_id

    set rsMovie = conn.Execute(sqlQuery)

    movie_title = rsMovie("title")

    :

    sqlQuery = "SELECT FROM Show, Theater " &_

    "WHERE show.movie_id = " & movie_id &_

    " AND theater.theater_id = show.theater_id"

    set rsShows = conn.Execute(SQLquery)

    如果你仔细研究了这个代码,你就会想用Session来保存电影信息,再在这页进行查询更简单。同样很不幸,Session是需要
    cookies的支持,虽说在WAP规范中也是被支持的,但是在Nokia 7110中也是不被支持,这就是说现在我们还不能把session用在WAP
    服务中。

    下面有一些有趣的事情:

    <select name='show'>

    <%

    Do while not rsShows.eof

    response.write("<option value='" & rsShows("show_id") & "'>" & Left(rsShows("name"),cutter) & " (" &
    rsShows("time") & ")" & "</option>" &vbcrlf)

    rsShows.MoveNext

    loop %>

    </select>

    如果你对cutter变量感到疑惑,那么就有一些事让你哭笑不得

    Dim cutter

    if InStr(Request.ServerVariables("HTTP_USER_AGENT"), "Nokia7110") then

    cutter = 12

    else

    cutter = 7

    end if

    这段代码根据不同的设备来显示选项。我们有充足的理由的这样做,Nokia Toolit 1.2仿真器喜欢把砍掉我的的选项到只有几个字
    符,而我们要显示电影名字和上映时间,所以我们就不得不减少电影名字的字符。在真的手机中不会出现这种问题,所以我们就必
    须先判断设备的类型.

    一旦我有机会(飞刀我很穷,没有钱,这是仅仅是遥远的梦想.......)在真的Nokia 7110上测试我的代码,我们会立即感到我们
    有比我们想像更大的屏幕。实际上,有些电影院的名字很古怪,而且这些长名字会占用很大屏幕空间,我们没有必要浪费这些显示空
    间,尽量把这些名字简化。



    下一步就是让用户选择需要的票数.这部分的代码很像其它的部分。我将从数据库中查询相同的数据,因为Session不能在真正的
    WAP手机中使用,所以我必须对有些内容进行确认,看看是否还有座位出售.

    SQLquery = "SELECT * FROM show WHERE Show_id = " & show_id

    set rsShow = conn.Execute(SQLquery)

    :

    seats = rsShow("free_seats")

    :

    if seats = 0 then

    Response.write("Sorry, no more seats")

    rsShow.close

    set rsShow = nothing

    Response.write("</p></card></wml>")

    Response.end

    else

    if seats > 6 then 'book up to 6 tickets or max available

    max_seats=6

    else

    max_seats = seats

    end if

    end if

    %>

    <%=movie_title%> at <% =theater_name%>

    <select name='ticket'>

    <%

    dim i

    i = 1

    Do while i <= max_seats

    response.write("<option value='" & i & "'>" & i & " ticket(s)" & "</option>" &vbcrlf)

    i = i + 1

    loop %>

    </select>

    储存票数

    现在我们已经有了所有需要的数据了,我们得把它们保存起来:

    tickets = Request("ticket")

    :

    free_seats = rsShow("free_seats")

    :

    free_seats = free_seats - tickets

    :

    SQLUpdate = "UPDATE Show " &_

    "SET Show.free_seats=" & free_seats & " " &_

    " WHERE Show_ID=" & show_id

    conn.Execute(SQLupdate)

    SQLquery = "SELECT max() as bookingnumber FROM booking"

    Set rsBooking = conn.execute(SQLquery)

    maxbookid = rsBooking("bookingnumber") + 1


    SQLinsert = "INSERT INTO Booking ( show_id, booked_seats ) " & _

    "VALUES ('" & show_id & "', '" & tickets & "')"

    conn.Execute(SQLinsert) %>

    You have booked <%=tickets%> ticket(s) for <%=movie_title%><br />

    The show will take place at <%=theater_name%> (<%=time%>)

    <br />

    Your reference number is <%=maxbookid%>

    下面是显示:

    Figure 4:完成交易.

    交易已经完成了,电影院可以坐着电影院门口收钱了.

    结论

    WAP现在才刚刚走出它的第一步,然而它是最近几年内最有革命性的IT发展之一。在这篇文章中我介绍了怎样用asp写WAP应用程序,
    并对你们提出了一些警告,希望对你们以后的发展有用。多媒体技术依然不能太多的用于WAP,但是它的可移动性却是重要的,也为
    商家提供了不少的商机。

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多