vbscript - VB script ADODB.Stream creating infinite while loop -


i have vbs file. fetch records sql server 2000 database. using while loop, extract data column record set using steam object, create file & write content of zip file getting infinite loop.

please find db records sample

file_id file_name file_content(blob datatype)

23127376 file_1 afdfasdf253asdf6asdf52asd45fasf

23127377 file_2 afdfasdf253asdf6asdf52asd45fasf

23127378 file_3 afdfasdf253asdf6asdf52asd45fasf

23127379 file_4 afdfasdf253asdf6asdf52asd45fasf

23127380 file_5 afdfasdf253asdf6asdf52asd45fasf

23127381 file_6 afdfasdf253asdf6asdf52asd45fasf

23127382 file_7 afdfasdf253asdf6asdf52asd45fasf

23127383 file_8 afdfasdf253asdf6asdf52asd45fasf

23127384 file_9 afdfasdf253asdf6asdf52asd45fasf

23127385 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

please view code below

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 

after sometime, infinite loop. please find log code.

[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 

could please assist on issue

you should handle checking eof in statement rather while statement. , can break loop checking last saved value.

dim lastsaved : lastsaved = "" while not objrs.eof      set lobjstream = createobject("adodb.stream")     lobjstream.mode = 3 ' admodereadwrite   3       read/write.     lobjstream.type = 1 ' adtypebinary      1       binary data     lobjstream.open     dim check : check = objrs("sdfmb02_file_id_k")     if lastsaved = check         exit     else         lastsaved = check         sdfmb02_file_id_k = check     end if     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  

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -