當我通過SQL Server 2008運行SQL時,它工作得很好。但是,當我將它添加到經典的ASP網頁,然後從那裏調用它似乎打破。我不確定我缺少什麼?SQL Server記錄集臨時表過早關閉?
sql = ""
sql = sql & " DECLARE @listStr VARCHAR(MAX)"
sql = sql & " DECLARE @temp TABLE ("
sql = sql & " DistID varchar(30),"
sql = sql & " FName varchar(30),"
sql = sql & " LName varchar(30),"
sql = sql & " RankID int, "
sql = sql & " PSV int,"
sql = sql & " ShipCountry varchar(30),"
sql = sql & " ShipState varchar(30))"
sql = sql & " INSERT INTO @temp"
sql = sql & " EXEC [dbo].[MSGGetList]"
sql = sql & " @List = N'" & request("report_type") & "',"
sql = sql & " @DistID = " & Session("DistributorID") & ","
sql = sql & " @BusCtrID = 1,"
' Autoship Filter Params
If request("autoship") <> "" Then
sql = sql & " @FilterAutoship = '" & request("autoship") & "',"
Else
sql = sql & " @FilterAutoship = NULL,"
End If
sql = sql & " @ItemID = " & request("item_id") & ","
' Order Filter Params
If request("orders") <> "" Then
sql = sql & " @Orders = '" & request("orders") & "',"
Else
sql = sql & " @Orders = NULL,"
End If
If request("minvol") <> "" Then
sql = sql & " @MinVol = " & request("minvol") & ","
Else
sql = sql & " @MinVol = NULL,"
End If
If request("minpostamt") <> "" Then
sql = sql & " @MinPostAmt = " & request("minpostamt") & ","
Else
sql = sql & " @MinPostAmt = NULL,"
End If
If request("startdate") <> "" Then
sql = sql & " @DateStart = '" & request("startdate") & "',"
Else
sql = sql & " @DateStart = NULL,"
End If
If request("enddate") <> "" Then
sql = sql & " @DateEnd = '" & request("enddate") & "',"
Else
sql = sql & " @DateEnd = NULL,"
End If
' Location Filter Params
If request("country") <> "" Then
sql = sql & " @Country = '" & request("country") & "',"
Else
sql = sql & " @Country = NULL,"
End If
If request("region") <> "" Then
sql = sql & " @Region = '" & request("region") & "',"
Else
sql = sql & " @Region = NULL,"
End If
' Rank Filter Params
If request("rankid") <> "" Then
sql = sql & " @RankID = '" & request("rankid") & "',"
Else
sql = sql & " @RankID = NULL,"
End If
'Do Not send list
If request("DoNotSend") <> "" Then
sql = sql & " @Exempt = '" & request("DoNotSend") & "',"
End If
' Volume Filter Params
sql = sql & " @MinPV = " & request("min_pv") & ","
sql = sql & " @MaxPV = " & request("max_pv") & ","
sql = sql & " @MinGV = " & request("min_gv") & ","
sql = sql & " @MaxGV = " & request("max_gv") & ","
sql = sql & " @MinLBVRBV = NULL"
sql = sql & " SELECT @listStr = COALESCE(@listStr+',' ,'') + DistID FROM @temp"
sql = sql & " SELECT @listStr AS ToList"
stop
response.write(sql & "<br />")
Set rsToList = GetRecordSet(sql)
response.Write(rsToList("ToList"))
當我單步執行代碼,並期待在rsToList
它說:當對象被關閉
任何想法,不允許
操作什麼,我在這裏失蹤?!
編輯:
Function getRecordset(strSQL) If Application("DebugSQL") Then Call WriteSQL(strSQL) End If 'Create Database Connection Set FunctionDBConn = Server.CreateObject("ADODB.Connection") FunctionDBConn.ConnectionTimeout = 180 FunctionDBConn.Open(Application("DB_ConnectionString")) Set adoRS = Server.CreateObject("ADODB.Recordset") adoRS.CursorLocation = 3 adoRS.LockType = 4 'Create Recordset adoRS.Open strSQL, FunctionDBConn Set adoRS.ActiveConnection = Nothing Set GetRecordset = adoRS 'Close Database Connection FunctionDBConn.Close Set FunctionDBConn = Nothing End Function
把它換成一個事務嗎?只有一條評論。 – Paparazzi 2012-07-19 20:50:39
@Blam我從來沒有使用過交易,這是否會爲我提供更詳細的想法? – 2012-07-19 20:52:35
我不確定是什麼導致了這個問題。交易可能會讓它消失。 http://msdn.microsoft.com/en-us/library/2k2hy99x(v=vs.100).aspx只有註釋 – Paparazzi 2012-07-19 21:42:44