当前位置: 首页 > 图文教程 > 网络编程 > ASP > WAP中的ASP技术(四)

ASP
remote script文档(转载自微软)(八)
不能ASP图像组件来生成图像的ASP计数器程序(二)
不能ASP图像组件来生成图像的ASP计数器程序(三)
用ASP发送邮件
用ASP进行网络打印功能
用ASP实现号码转换
如何用ASP创建日志文件
二十八条改善 ASP 性能和外观的技巧(1-7)
二十八条改善 ASP 性能和外观的技巧(8-14)
二十八条改善 ASP 性能和外观的技巧(15-21)
二十八条改善 ASP 性能和外观的技巧(22-28)
asp实现在web中显示电子表格数据(一)显示数据表格的应用
asp实现在web中显示电子表格数据(二)生成HTML表格
asp实现在web中显示电子表格数据(三)创建数据表列表和名字范围
asp实现在web中显示电子表格数据(四)创建文件选择列表
Carello Web 使 ASP 源码暴露 (APP,缺陷)
MS IIS虚拟主机ASP源码泄露 (MS,缺陷)
虚拟web目录容易泄露ASP源代码 (MS,缺陷)
MS IIS server的ASP安全缺陷 (MS,缺陷)
用WinSock设计Chat程序(转)

WAP中的ASP技术(四)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 166 ::
收藏到网摘: n/a

  选择电影院和上映时间

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

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 [name], [time], [show_id] 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([Booking_ID]) as bookingnumber FROM booking"

Set rsBooking = conn.execute(SQLquery)

maxbookid = rsBooking("bookingnumber") + 1


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

"VALUES ('" & show_id & "', '" &a