我正在使用VB6 SP6 此代碼已正常工作多年,但我現在在WIN7到WIN7網絡上有問題。它也可以在XP到Win7網絡上正常工作。Windows 7文件問題
Open file for random as ChannelNum LEN =90
'the file is on the other computer on the network
RecNum = (LOF(ChannelNum) \ 90) + 2
Put ChannelNum, RecNum, MyAcFile
'(MyAcFile is UDT that is less than 90 long)
.......... other code that does not reference file or RecNum - then
RecNum = (LOF(ChannelNum) \ 90) + 2
Put ChannelNum, RecNum, MyAcFile
Close ChannelNum
第二條記錄覆蓋第一條記錄。
我們在過去使用了OpportunisticLocking類似的問題,所以我們在安裝時將其關閉 - 以及一些導致Windows網絡中數據錯誤的其他鍵。
但是我們多年來一直沒有這樣的問題,所以我認爲MS有一些新的「更好」的選擇,他們認爲這將「改善」網絡。
感謝您的幫助
LOF()應該返回文件的大小,所以RecNum *將*在該代碼段中更改。 – paxdiablo 2009-11-28 00:48:54
@paxdiablo:好吧,剛剛查了一下LOF()做了什麼,感謝這些團長... @ rickdick69:有什麼東西是鎖定在文件的某個地方,這會阻止你的程序進一步寫入第二條記錄。跛行我知道...有一個程序,你可以使用這個稱爲解鎖在這裏@ http://ccollomb.free.fr/unlocker/。希望這會有更多的幫助。 – t0mm13b 2009-11-28 00:56:24
沒有它鎖定,因爲它寫入正確。 LOF只是沒有返回正確的長度 我會欺騙代碼並關閉文件並重新打開它 - 但我真的想知道有什麼不同。 – user5127767 2009-11-28 02:36:14