局里急要个重点人口管控系统,找了不少成品,就一个ASP的和我们的70%相仿,就用它改吧!现在补习下ASP
一:关于ASP的类型。
这个问题是由Scripting.dictionary 的使用引起的。
set dic = server.createobject("scripting.dictionary")
set rs = server.createobject("adodb.recordset")
sql = ....
rs.open sql,conn,1,1
for i=1 to rs.recordcount
dic.item(rs("classid"))=rs("classname")
rs.movenext
next
if rs.state<> then //此处对状态的判断,经测试运行准确!
rs.close
end if
以上操作 dic 中保存的不是我们想要的值,当比如classid = 21 classname = "派出所".
如果在此取值:
dic.item("21")
执行这个语句时,dic会产生一个key = 21 的空值项,说明开始时赋值的类型不对。必须做类型转换:
key1 = rs("classid")
val1 = rs("classname")
dic.item(key1) = val1;
经过上边的类型类型转换,就得到了正确结果。如果你觉得现在ASP有常规的哈希表可用了,别太高兴,网上的文章说,dic保存到appliction变量中会导致系统崩溃。
妈拉个巴子的,ASP就没有正常的数据结构,链表哈希表树这些,都没有内置的,session appliction这样的服务器对象可以当成正常的哈希表正使用吗?除非你用完及时销毁,要不会产生大量垃圾,没有完整的数据结构,导致现在ASP没人用了,也就我今天还拿出来将就用用,也是为了进度没办法。
补充:
有办法了,session可以用作正常哈希表在函数间传值使用,这么说是因为找到了及时销毁它的办法:
Session.Contents.remove(key)
这样就把session(key)立即销毁了
if Session("SesName")=Empty then
response.write("empty")
//此句代码经天外来宾验证,执行准确!
end if
http://www.w3school.com.cn/asp/asp_applications.asp
这个学习网站很工整。