2012-10-15 46 views
0

我有一个经典的asp应用程序(在Windows 2000/IIS 5.0上运行的ASP 3.0),它允许用户编写自定义SQL查询从数据库(Oracle 10g)获取数据,更像SQL Developer。有时用户编写无限期运行的复杂查询,尽管用户可以单击后退按钮返回上一页,但查询仍可能在数据库上运行。现在,用户正在请求他们获得一个功能,只需点击一下按钮即可杀死查询。经典的asp异步sql执行

我是asp的初学者,所以我不确定这是否可能在asp中。我们使用ADODB.RecordSet对象来使用RecordSet.Open和RecordSet.GetRows获取数据。请告知,如果这是可以实现的经典ASP。

Set connection = Server.CreateObject("ADODB.Connection") 
connection.Open DATA_SOURCE, LOGON_ID, PASSWORD 
Set resultset = Server.CreateObject("ADODB.Recordset") 
Dim sql 
sql="select sysdate from dual" 
resultset.Open sql, connection 
Dim DBData 
DBData = resultset.GetRows(NUMROWS) 
resultset.close 
connection.close 
Set resultset = Nothing 
Set connection = Nothing 
+0

不知道一个循环,如果这可以帮助,但你可以尝试来包装数据库功能的' Class'并关闭'Private Sub Class_Terminate'中的连接。 – Passerby

+0

您需要调用Connection.Cancel方法。其他选项是使用事务并调用Connection.RollbackTrans。如果查询是作为一种后台进程运行的...你只能选择调用Session.abandon(注意,这会破坏所有用户会话变量和对象......不只是一个数据库查询) – AardVark71

+0

sysdate是一个字段。因为在sql中没有这样的关键字 – polin

回答

0

试试这个

arrayRs = resultset.GetRows() 
if arrayRs(0,0)<> "" then 
response.write(arrayRs(0,0)) 
end if 

或者你可以尝试当你获取多个字段