Asp classic 关键字';关闭';
我的一个脚本中有一段代码的语法出现了错误Asp classic 关键字';关闭';,asp-classic,Asp Classic,我的一个脚本中有一段代码的语法出现了错误 if(status <> true and Request.QueryString("selectId") = "undefined") then strConn ="PROVIDER=foobar;Server=foo;Database=foo;Uid=bar;Pwd=bar;" Set cnt = Server.CreateObject("ADODB.Connection") set rs1 = CreateObject("ADODB.R
if(status <> true and Request.QueryString("selectId") = "undefined") then
strConn ="PROVIDER=foobar;Server=foo;Database=foo;Uid=bar;Pwd=bar;"
Set cnt = Server.CreateObject("ADODB.Connection")
set rs1 = CreateObject("ADODB.Recordset")
rs1.CursorLocation = adUseClient
cnt.ConnectionString= strConn
cnt.Open strConn
sql="Select * from rule1 where skucode='" & Request.Form("txthidden") & "' and letter1id ='" & Request.Form("lrt1") & "' and letter2id ='" & Request.Form("Select1") & "' and letter3id ='" & Request.Form("Select2") & "'"
rs1.Open sql,cnt,2,2
if not rs1.EOF then
Response.write("<script language=""javascript"">alert('Rules already exists!');</script>")
else
sql="INSERT INTO rule1 (letter1id,letter2id,letter3id,HTML,skucode) VALUES "
sql=sql & "('" & Request.Form("lrt1") & "',"
sql=sql & "'" & Request.Form("Select1") & "',"
sql=sql & "'" & Request.Form("Select2") & "',"
sql=sql & "'" & Request.Form("txthtml") & "',"
sql=sql & "'" & Request.Form("txthidden") & "')"
cnt.Execute sql
Response.write("<script language=""javascript"">alert('Rules Added successfully!');window.location='" & "viewrule1.asp?skucodes=" & Request.Form("txthidden") & "';</script>")
end if
rs1.Close
cnt.close
您可以将其完全分离,而不是将其关闭:
set cnt = Nothing
应该没有问题。我想的只是你的数据是否太长。有时,当您的行限制超过时,会发生这种情况。SQL Server 6.5允许最大行大小为1962字节,SQL Server 7.0允许最大行大小为8060字节。这只是一个假设,假设这是抛出错误的最后一行,我将替换为:
If IsObject(cnt) Then
On Error Resume Next
If cnt.State = 1 Then ' 1 = adStateOpen '
cnt.Close
End If
Set cnt = Nothing
Err.Clear
On Error Goto 0
End If
cnt
到达脚本的该部分时可能已经关闭,这就是它抛出错误的原因。关闭前检查其状态需要在出错时包装它,然后继续下一步逻辑,否则它将抛出另一个错误。如果在cnt.close()之后
丢失,则会有一个结束。
@j.w.r这将导致编译错误(语法错误),但实际的错误消息是运行时错误。第75行是什么?另外,尝试将rs1.opensql,cnt,2,2
更改为Set rs1=cnt.Execute(sql)
,这可能会有所帮助。
If IsObject(cnt) Then
On Error Resume Next
If cnt.State = 1 Then ' 1 = adStateOpen '
cnt.Close
End If
Set cnt = Nothing
Err.Clear
On Error Goto 0
End If