2012-10-15 49 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 

或者你可以嘗試當你獲取多個字段