2010-06-14 97 views
0

我現在正在使用vbscript來做一些測試。 Actuelly,我想從Oracle數據庫檢索大量數據的,所以我寫了這樣的代碼:如何從oracle數據庫使用vbscript檢索大數據

sql = "Select * from CORE_DB where MC = '" & mstr & "' " 
Set myrs = db_execute_query(curConnection, sql) 

那我算在米兒絲行,有248行。那麼我做一個對於循環來檢索每一行的一些字段。

For k = 0 To db_get_rows_count(myrs) 

但是,我發現,行ķ的內容時K> 133總是等於K = 133。所以這是一個錯誤。

db_execute_query功能就像是

Function db_execute_query (byRef curSession , SQL) 
set rs = curSession.Execute(SQL) 
set db_execute_query = rs 
End Function 

db_get_rows_count功能就像是

Function db_get_rows_count(byRef curRS) 
    dim rows 
    rows = 0 
    db_get_rows_count = rows 
    curRS.MoveFirst 
    Do Until curRS.EOF 
    rows = rows+1 
    curRS.MoveNext 
    Loop 
    db_get_rows_count = rows 
End Function 

正如我認爲,有可能是mrys限制大小?任何人都可以點亮我嗎?提前致謝

+0

這將有助於瞭解db_execute_query和db_get_rows_count函數的功能。這很可能就是問題所在。 – 2010-06-14 14:18:36

+0

@Cheran,好吧,我編輯這個問題,給出關於這兩個函數的一些細節。謝謝 – allenzzzxd 2010-06-14 16:45:55

+0

任何人都可以給點意見嗎? – allenzzzxd 2010-06-17 08:15:00

回答

1

瞭解數據庫中的實際情況將會非常有用。你可以使用其他工具(SQLPlus,PL/SQL Developer,Toad等)連接到你的數據庫並執行你的查詢嗎?如果這樣做,那麼結果是否與通過VBScript執行查詢時得到的結果相匹配?

另外,你是否從數據庫中得到錯誤?這可能有助於確定發生了什麼。

+0

感謝您的回答,我已經在數據庫中驗證了預期的結果,但是我還沒有在另一個工具中執行sql查詢。無論如何,我沒有任何錯誤。 – allenzzzxd 2010-06-14 11:06:05

+0

你好,我已經測試過使用SQL Developer,結果是正確的,所以我認爲這可能是我的VBScript語句的問題 – allenzzzxd 2010-06-14 12:40:37

+1

看着你的代碼,我想知道你爲什麼遍歷結果集來找出如何查詢返回了很多行,然後您將返回處理行。我建議你不要打擾數行,只是在你得到它們時處理它們。如果您在處理數據之前確實需要對它們進行計數,則需要確保在調用db_get_rows_count之後以及在開始再次查看結果集中的行之前,有一個curRS.MoveFirst可以完成。 – 2010-06-14 21:26:00

相關問題