我的经典 ASP Web 应用程序中有一个 SQL 界面页面,它允许管理员用户对应用程序的数据库 (MSDE 2000) 运行查询 - 它仅包含用户提交的文本区域,应用程序返回结果记录列表,如下所示
Dim oRS
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.ActiveConnection = sConnectionString
// run the query - this is for the admin only so doesnt check for sql safe commands etc.
oRS.Open Request.Form("txtSQL")
If Not oRS.EOF Then
// list the field names from the recordset
For i = 0 to oRS.Fields.Count - 1
Response.Write oRS.Fields(i).name & " "
Next
// show the data for each record in the recordset
While Not oRS.EOF
For i = 0 to oRS.Fields.Count - 1
Response.Write oRS.Fields(i).value & " "
Next
Response.Write "<br />"
oRS.Movenext()
Wend
End If
这样做的问题是,如果您向其发送无效查询(拼写错误、无效联接等)而不是立即返回错误,它会挂起 IIS(您可以通过尝试从另一台计算机浏览应用程序来看到这一点,它失败了)几分钟,然后返回错误。我不知道为什么!任何人都可以帮忙吗?