有没有人遇到过这样的问题:来自传统ASP页面的SQL查询返回部分结果,但没有错误?
我遇到一种情况,页面上的特定查询(整个系统中的许多查询之一)每次运行时返回不同行数,并始终 less 比“正确”数字,通过直接在服务器上运行SQL来确定。
我认为这可能与连接超时有关(因为这发生在长时间运行的查询中并且我的时间显示它返回非常接近超时),但是我没有收到超时错误。相反,据我所知,它不会导致错误,并返回一个有效的DataSet
,代码然后循环以构建结果表。
由于没有迹象表明发生了错误,因此没有迹象表明数据不完整,这意味着用户无法再信任此报告。通常在这个系统中,对于“大”查询经常发生SQL超时,我们会在页面上显示错误消息。
调查
是否有人遇到过来自经典asp页面的SQL查询只返回部分结果的情况,有没有办法检查或阻止这种情况?
设置:
ADODB.Connection
个对象连接到DB2服务器后端数据库。共享连接启动如下:
connString = "Provider=MSDASQL.1;User ID=xxx;Data Source=XXX;Extended Properties=""DSN=XXX;UID=XXX;PWD=XXX;"""
Set conn = Server.CreateObject( "ADODB.Connection" )
Set cmd = Server.CreateObject("ADODB.Command")
conn.Mode = adOpenReadOnly
conn.Open connString
cmd.ActiveConnection = conn
cmd.CommandTimeout = 600
用法如下:
query = " SELECT blah FROM Foo WHERE ... " ' big long list of clauses defined from user selections.
cmd.CommandText = sql
Set oRs = cmd.Execute
Resposne.Write "<table>..." ' Write table headers here'
Do while (Not oRs.eof)
Response.Write "<tr>...</tr>" ' WRite details from oRs here
oRs.MoveNext
Loop
Response.Write "</table>"
答案 0 :(得分:1)
尝试向查询添加order by
,这样它应该立即发送所有行,您可以排除或解决超时问题