我有vbs文件。它將從sql server 2000數據庫中獲取記錄。 使用do while循環, 然後提取數據列從記錄中設置 使用蒸汽對象,創建文件&寫的zip文件 的內容,但我得到無限循環。VB腳本ADODB.Stream創建無限while循環
請找到樣本數據庫記錄
FILE_ID FILE_NAME FILE_CONTENT(BLOB數據類型)
23127376 File_1 afdfasdf253asdf6asdf52asd45fasf
23127377 File_2 afdfasdf253asdf6asdf52asd45fasf
23127378 File_3 afdfasdf253asdf6asdf52asd45fasf
23127379 File_4 afdfasdf253asdf 6asdf52asd45fasf
23127380 File_5 afdfasdf253asdf6asdf52asd45fasf
23127381 File_6 afdfasdf253asdf6asdf52asd45fasf
23127382 File_7 afdfasdf253asdf6asdf52asd45fasf
23127383 File_8 afdfasdf253asdf6asdf52asd45fasf
23127384 File_9 afdfasdf253asdf6asdf52asd45fasf
2 3127385 File_10 afdfasdf253asdf6asdf52asd45fasf
23127386 File_11 afdfasdf253asdf6asdf52asd45fasf
23127387 File_12 afdfasdf253asdf6asdf52asd45fasf
23127388 File_13 afdfasdf253asdf6asdf52asd45fasf
23127389 File_14 afdfasdf253asdf6asdf52asd45fasf
23127390 File_15 afdfasdf253asdf6asdf52asd45fasf
23127391 File_16 afdfasdf253asdf6asdf52asd45fasf
請查看下面
DO
Set lobjStream = CreateObject("ADODB.Stream")
lobjStream.Mode = 3 ' adModeReadWrite 3 Read/write.
lobjStream.Type = 1 ' adTypeBinary 1 Binary data
lobjStream.Open
SDFMB02_FILE_ID_K = ObjRS("SDFMB02_FILE_ID_K")
logMessage = "[Record] File ID (SDFMB02_FILE_ID_K) :: " & SDFMB02_FILE_ID_K
logFilte.WriteLine (logMessage)
lobjStream.Write ObjRS("DFMB02_FILE_BLOB_I").Value
lobjStream.SaveToFile ZipPath & ObjRS("DFMB02_FILE_N").Value, 2
ZipFile = ZipPath & ObjRS("DFMB02_FILE_N").Value
ZIPFldPath = Left(ObjRS("DFMB02_FILE_N").Value, Len(ObjRS("DFMB02_FILE_N").Value) - 4)
ObjRS.movenext
set lobjStream = Nothing
Loop While ObjRS.EOF = False
代碼一段時間後,我會得到無限循環。請查找此代碼的日誌。
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127376
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127377
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127378
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127379
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127380
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127381
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127382
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127383
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127384
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127385
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127385
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127385
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127385
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127385
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127385
[Record] File ID (SDFMB02_FILE_ID_K) :: 23127385
能否請您協助在這個問題上
+1。我通常也會檢查'BOF'。所以像'做雖然不ObjRS.BOF和不ObjRS.EOF'這可能是多餘的,但我不記得什麼.BOF和。EOF屬性值是記錄集返回零行時的值。 – DMason
嗨Rich 1)這個循環對於10000條記錄可以正常工作,但是當超過80000條記錄時會出現懸掛問題。 2)總理看到你和我的動態循環在邏輯上是正確的。你能否詳細說明你和我的同時循環之間有什麼區別? – user3455793
當然沒問題。我的循環檢查其最後一個值並查找更改。如果沒有更改,則退出do循環 – Rich