ASP高级技巧精选集(3)

 

六、如何在不同页面间共享数组内容?
a.asp文件内容:
<%
Dim arr(5)
Dim str,i
'给数据赋值
For i= 0 to 5
    arr(i)=i
Next
'传递数组
str=join(arr)
Response.Write "<a href=test.asp?tempstr="& str &">传送数组内容</a>"
%>

test.asp内容:
<%
dim tempstr
tempstr=split(Request("str"),",")
response.write tempstr(0) & "<br>" & tempstr(1)
%>

 

七、Eval的用法:
<%
m="50+60+80"
response.write eval(m)
%>

 

八、为什么在ADO访问数据库时使用事务会提示出错?
情况一:
set dbconn=server.createobject("adodb.connection")
set dbcmd=server.createobject("adodb.command")
dbconn.open "dsn=sqlforum;uid=sa;pwd=;"
dbconn.BeginTrans
Rs.Open "select * from message",dbconn
set dbcmd.activeconnection=dbconn
以上语句提示如下错误信息:
Unspecified error

情况二:
set dbconn=server.createobject("adodb.connection")
bconn.open "dsn=sqlforum;uid=sa;pwd=;"
dbconn.BeginTrans
以上语句提示如下信息:
Cannot start transaction while in firehose mode.

情况三:
set dbconn=server.createobject("adodb.connection")
set dbcmd=server.createobject("adodb.command")
dbconn.open "dsn=sqlforum;uid=sa;pwd=;"
rs.open "select * from message",dbconn
set dbcmd.activeconnection=dbconn
dbconn.BeginTrans
以上语句提示如下信息:
Cannot start transaction because more than one hdbc is in use.

这是怎么回事?如何解决?
    "firehose"指的是一个只读的游标模式。当我们打开Recordset时没有指定游标类型,则Recordset会以向前的游标打开,与SQLserver连用时,我们称之为"firehose"。此连接会一直打开,查询结果会尽快打开,而这种只读方式下是不能执行事务的。
    像上面几中情况出错的原因都是由于在"firehose"模式,command对象的activeconnection的游标模式是readonly的。
    改变"firehose"的方法有如下几种:
    1.设定connection的游标类型不是向前只读。
    2.在开始事务之前关闭使用同一连接的recordset对象。

 

九、用Insert into 还是 Addnew?
Addnew实质上是封装了Insert into,所以速度会比Insert into慢。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3214.html