主题:[讨论]script runat=server 与<%%>有区别吗?
最近遇到一个比较奇怪的问题.在更新SQL 数据库时,总是不成功,但又没有返回任务错误信息.起初以为是事务处理方面出了问题,于是写了下面这段测试代码.本意是想看看事务处理能不能成功执行.但后来发现,写在<script runat="server">块时,执行失败,无任何结果,也没出错信息.改成<% %>后,就成功了.很是莫名其妙.
<html>
<head>
<title> 测试sql 事务处理 </title>
</head>
<body>
</body>
</html>
<SCRIPT language="vbscript" runat="server">
'* 难道script标记与<%标记的功能是不一样的????
'* 当写成script时,执行失败,无任何结果,也没出错信息
'* 当写成<% 时,能成功执行
Option Explicit
Dim conn
Dim cnnStr
Dim sqlStr
Response.write "开始执行<br>"
Set conn=Server.CreateObject("ADODB.Connection")
cnnStr="Driver={SQL Server};UID=sa;PWD=;database=Guan;server=127.0.0.1;"
conn.open cnnStr
Response.write "以非事务处理方式操纵sql数据库<br>"
'* 先清除test表中的相关记录
sqlstr="delete from test where id=321 or id =123"
conn.execute(sqlstr)
sqlstr="insert into test(ID,DD) values(321,'non_trans')"
conn.execute(sqlstr)
Response.write "非事务处理方式结束<br>"
'* ===========================
sqlStr="insert into test(ID ,DD) values('123','trans')"
Response.write "事务处理开始<br>"
conn.beginTrans
conn.execute(sqlstr)
If conn.errors.count >0 Then
Response.write "事务处理失败<br>"
conn.RollbackTrans
Else
Response.write "事务处理成功<br>"
conn.CommitTrans
End If
conn.close
Set conn=Nothing
</SCRIPT>
<html>
<head>
<title> 测试sql 事务处理 </title>
</head>
<body>
</body>
</html>
<SCRIPT language="vbscript" runat="server">
'* 难道script标记与<%标记的功能是不一样的????
'* 当写成script时,执行失败,无任何结果,也没出错信息
'* 当写成<% 时,能成功执行
Option Explicit
Dim conn
Dim cnnStr
Dim sqlStr
Response.write "开始执行<br>"
Set conn=Server.CreateObject("ADODB.Connection")
cnnStr="Driver={SQL Server};UID=sa;PWD=;database=Guan;server=127.0.0.1;"
conn.open cnnStr
Response.write "以非事务处理方式操纵sql数据库<br>"
'* 先清除test表中的相关记录
sqlstr="delete from test where id=321 or id =123"
conn.execute(sqlstr)
sqlstr="insert into test(ID,DD) values(321,'non_trans')"
conn.execute(sqlstr)
Response.write "非事务处理方式结束<br>"
'* ===========================
sqlStr="insert into test(ID ,DD) values('123','trans')"
Response.write "事务处理开始<br>"
conn.beginTrans
conn.execute(sqlstr)
If conn.errors.count >0 Then
Response.write "事务处理失败<br>"
conn.RollbackTrans
Else
Response.write "事务处理成功<br>"
conn.CommitTrans
End If
conn.close
Set conn=Nothing
</SCRIPT>