最后,管理员为我配置了IIS,下面列出了错误消息。 设置SQLStream = CreateObject(“ADODB.Stream”) 设置SQLConnection = CreateObject(“ADODB.Connection”) 设置SQLCommand = CreateObject(“ADODB.Command”) 设置SQLRecordSet = CreateObject(“ADODB.RecordSet”) SQLConnection.Open“Provider = sqloledb; SERVER = SQLPROD; DATABASE = MyDataBase; UID = MyUsername; PWDMyPassword;”
'Response.Write("Connection Status: " & SQLConnection.State) & vbnewline
'Response.Write("Connection Provider: " & SQLConnection.Provider) & vbnewline
'Response.Write("Version: " & SQLConnection.Version) & vbnewline
SQLCommand.ActiveConnection = SQLConnection
SQLCommand.CommandText = "SELECT Seminars.Year, Seminars.SeminarID, Seminars.Theme, Seminar_Week.First, Seminar_Week.Last, Seminar_Week.WeekID, Seminar_Week.Date, Seminar_Week.Affiliation FROM Seminars CROSS JOIN Seminar_Week"
'Response.Write("SQL Command Passed in: " & SQLCommand.CommandText)
Set adoRec = SQLCommand.Execute()
file1 = "./seminars/" & seminar_type & "/" & seminar_year & "/" & adoRec("Date") & "-" & adoRec("Year") & "_" & adoRec("Last") & ".pdf"
file2 = "./seminars/" & seminar_type & "/" & seminar_year & "/" & adoRec("Date") & "-" & seminar_year & "_" & adoRec("Last") & "(handouts).pdf"
file3 = "./seminars/" & seminar_type & "/" & seminar_year & "/" & adoRec("Date") & "-" & seminar_year & "_" & adoRec("Last") & "_Flyer.pdf"
Set fso = CreateObject("scripting.filesystemobject")
Response.Write("<p style=" & "margin-left:10px;" & "><img src=" & "./img/right_arrowblue.png" & " alt=" & "Expand/Collapse" & " id=" & "arrow_" & adoRec("Week") & " /><strong>[" & adoRec("Date") & "]</strong> " & "<a href=" & "javascript:toggle('seminar_" & adoRec("Week") &"')"">"&aroRec("First") & adoRec("Last") & ", " & adoRec("Affiliation") & "</a></p>")
最后一行代码导致此错误
ADODB.Recordset错误'800a0cc1'
在与所请求的名称或序号对应的集合中找不到项目。
FilePath ,第244行
第244行是最后一行代码,应该在网页上写下关于每个研讨会的一些信息。
我很确定此时我指的是一个不正确的文件路径,因为我在所有不同的字符串中都有一个额外的空间。
我现在的问题是那些是最开始的,意味着
中使用的那些"<p style=" & "margin-left:10px;" & "><img src=" & "./img/right_arrowblue.png"
造成麻烦。
我也不熟悉使用“展开/折叠”,所以如果有人能告诉我更多相关信息。我正在尝试修复别人的代码,所以我有点落后于8球。
答案 0 :(得分:1)
RS.MoveNext
将上面的代码放在Loop关键字之前的行上,以避免无限循环。
答案 1 :(得分:1)
解决方案的一小步:
你的SQL
"SELECT * FROM Seminars WHERE [SeminarID] = 5 ORDER BY DESC"
肯定是错误的:ORDER BY需要(至少)一个列名:ORDER BY [SeminarID] DESC。
如果这不能解决您的所有问题,我们将不得不考虑一步一步的方法。
如果您收到错误,请告诉我们(数量,描述,行)。这就是我的意思,当我要求你发布它们时。如果您无法获得比“IIS中处理URL时出错”更好的信息,那么您有编写一些命令行脚本以使数据库相关代码绝对正确。
从experiments.vbs开始:
Dim sCS : sCS = !your connection string!
Dim oCN : Set oCN = CreateObject("ADODB.Connection")
oCN.Open sCS
WScript.Echo "CN open:", oCN.State
Dim sSQL : sSQL = !your SQL statement!
Dim oRS : Set oRS = oCN.Execute(sSQL)
WScript.Echo "RS EOF:", CStr(oRS.EOF)
WScript.Echo "Frs Col:", oRS.Fields(0).Name, oRS.Fields(0).Type
Dim i : i = 0
Do Until oRS.EOF
WScript.Echo i, oRS.Fields(0).Value
i = i + 1
oRS.MoveNext
Loop
oCN.Close
并在命令窗口(DOS框)中运行它:cscript experiments.vbs。这应该会让你得到以下几行:
CN open: 1
RS EOF: False
Frs Col: Id 3
0 ...
1 ...
2 ...
或焦点/可发布的错误消息,如:
... .vbs(2465, 14) Microsoft OLE DB Provider for SQL Server: Falsche Syntax in der Nä
he des 'DESC'-Schlüsselworts.
(DESC附近的语法错误),当我尝试语句时得到了
"SELECT * FROM Alpha ORDER BY DESC"
答案 2 :(得分:0)
您是否在循环块结束时遗漏了loop
关键字?