[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/11/15(Tue) 17:31
投稿者名:はな
Eメール:tomokappa@hotmail.com
URL :
タイトル:
自分でOPENしたファイルのGET失敗について
[OSのVER]:Win2000 server SP4
[VBのVER]:VB6.0 SP6

いつも拝見させて頂いております。

標記につきまして、原因若しくは回避策を御存知の方がいらっしゃいましたら、
どうぞ御教示をお願い致します。

具体的な事象は下記の通りです。

あるテキストファイルの複数のプログラムで読み書きをしているのですが、
この時、ファイルOPEN直後にデータをGETすると、
「実行エラー75 パス名が無効です」のエラーが発生します。

当エラーは、毎回発生するのではありません。
何らかのタイミングにて発生しているような状況です。

DISPLAYでエラー時のパス・ファイル番号を見ても、正常に入っています。
自分でOPENしたファイルがGETできない事象が、VB6.0で発生するのでしょうか?

--以下 ソース抜粋  OPEN〜CLOSEまでの流れ--

Open SYSKYO_DAT For Random Lock Read Write As FNo Len = Len(SKRec)
Get FNo, , SKRec
Close FNo

投稿時間:2005/11/15(Tue) 17:57
投稿者名:黒影
Eメール:
URL :
タイトル:
Re: 質問する前に・・・
「初めにお読み下さい」を読みましょう。
共にマルチポストは禁止されています。

マルチポスト先
hhttp://www7.big.or.jp/~pinball/discus/vb/60079.html

投稿時間:2005/11/15(Tue) 19:17
投稿者名:いな
Eメール:
URL :http://,
タイトル:
Re: 自分でOPENしたファイルのGET失敗について
> いつも拝見させて頂いております。

いつも拝見しているのであれば、
マルチポストした質問がどうなるか、
分かりそうなんだけれども

hhttp://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200511/05110086.txt

投稿時間:2005/11/16(Wed) 14:40
投稿者名:はな
Eメール:tomokappa@hotmail.com
URL :
タイトル:
Re: 黒影様、いな様
to : 管理者様、黒影様、いな様

大変すみませんでした。
マルチポストをやってしまいました。

投稿時間:2005/11/16(Wed) 15:02
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 自分でOPENしたファイルのGET失敗について
> あるテキストファイルの複数のプログラムで読み書きをしているのですが、
同時に同じファイルを読み書きしていると言う事でしょうか?

> Open SYSKYO_DAT For Random Lock Read Write As FNo Len = Len(SKRec)
FNo → #FNo だったとおもうのですが(関係ないかも知れません)

> 当エラーは、毎回発生するのではありません。
> 何らかのタイミングにて発生しているような状況です。
その辺の詳しい状況が解らないとそれとこれだけのコードと状況では。

投稿時間:2005/11/16(Wed) 20:10
投稿者名:はな
Eメール:tomokappa@hotmail.com
URL :
タイトル:
Re^2: 自分でOPENしたファイルのGET失敗について
TO : 花ちゃん様

御返信頂き大変ありがとうございます!

@
> > あるテキストファイルの複数のプログラムで読み書きをしているのですが、
> 同時に同じファイルを読み書きしていると言う事でしょうか?

当PGMとは別タスクで、計8つのEXEがそれぞれ1秒毎に1回タイマーで、
For Random Lock Read Write オプションでの同じファイルへの読み書きをしています。
なお、読み書きのロジックは全EXEで全く同じです。

上記タイマーの周期が重なることを考慮し、ファイルへのアクション(OPEN,GET,CLOSE)
でエラーが発生した場合は、ON ERRORルーチンを使用して、
再度OPENのリトライを(MAX各120回)実施しております。
120回リトライしてもエラーの場合は、アプリケーションでエラーを出すようにしています。

A
> > Open SYSKYO_DAT For Random Lock Read Write As FNo Len = Len(SKRec)
> FNo → #FNo だったとおもうのですが(関係ないかも知れません)

私もそう考えて”#Fno”に変えてみたのですが、やはり同じ事象が発生致しました。

B
> > 当エラーは、毎回発生するのではありません。
> > 何らかのタイミングにて発生しているような状況です。
> その辺の詳しい状況が解らないとそれとこれだけのコードと状況では。

上記@の処理の繰り返し時に、ファイルOPENは正常にも関わらず、
GETでのエラーが発生している状況です。

投稿時間:2005/11/16(Wed) 20:27
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: 自分でOPENしたファイルのGET失敗について
> 上記@の処理の繰り返し時に、ファイルOPENは正常にも関わらず、
正常でないからエラーが発生しているものと思われます。
多分、単独での読み書きでは発生しないはず、エラー処理の方法等で問題がでているのでは
事前にエラーが発生していないかログをとって調べてみて下さい。

ON ERRORルーチン をコメント化してテストした方がいいかと思います。

投稿時間:2005/11/17(Thu) 18:32
投稿者名:はな
Eメール:tomokappa@hotmail.com
URL :
タイトル:
Re^4: 自分でOPENしたファイルのGET失敗について
TO : 花ちゃん様

御返信頂きありがとうございます。

> > 上記@の処理の繰り返し時に、ファイルOPENは正常にも関わらず、
> 正常でないからエラーが発生しているものと思われます。
> 多分、単独での読み書きでは発生しないはず、エラー処理の方法等で問題がでているのでは
> 事前にエラーが発生していないかログをとって調べてみて下さい。
>
> ON ERRORルーチン をコメント化してテストした方がいいかと思います。

すみません、私の説明不足でした。

該当プロシージャを1行単位でDISPLAYしてみたのですが、
OPENでは明らかにエラーは発生しておらず、かつGETでのエラー時にも
ファイル番号・パスは壊れていない状態(文字化けしておらず、値も正常)です。


ちなみにEXEを動かしているPC環境は以下の通りです。

型:IBM MT-M 8482-4GJ
OS:Win2000server SP4
ファイルタイプ:NTFS
VB:VB6.0 SP4(SP6に上げてみても状況は変わりませんでした)

投稿時間:2005/11/17(Thu) 19:07
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: 自分でOPENしたファイルのGET失敗について
> 該当プロシージャを1行単位でDISPLAYしてみたのですが、
> OPENでは明らかにエラーは発生しておらず、かつGETでのエラー時にも
> ファイル番号・パスは壊れていない状態(文字化けしておらず、値も正常)です。
前回も書きましたが貴方が正常と思っていても、オペレーティング システムでパスとファイル名を
関連付けることができなかったから、Error 75 が発生しているのでは、一番考えられるのが競合かと
思えるので、原因を特定する上でも、同時にアクセスしているプログラムを2個位にして、1秒おきに
アクセスしているのをもっと間隔をあけて実行したら、どうなるかを試してみればどうですか?
それとも単独の読み書きでも発生しているのですか?(前回も聞きましたが)
それにエラー処理にも問題があるのでは。少なくてもテスト段階でエラーが発生するような
プログラムは避けるべきかと思います。
ファイルのオープンからクローズまでの間は使用中のフラグでも作成しておき、他のソフトが使用中の
場合はアクセスをしないような作りに私ならしますが。

まあ、貴方が問題がない、正常だとおっしゃるなら私には原因は判りませんのでこれで失礼します。

投稿時間:2005/11/18(Fri) 10:39
投稿者名:はな
Eメール:tomokappa@hotmail.com
URL :
タイトル:
Re^6: 自分でOPENしたファイルのGET失敗について
TO : 花ちゃん様

御教示・御指摘を頂き、大変ありがとうございました。

花ちゃん様にアドバイス頂いた内容を取り込み、再度テストをやってみます。
またの御教示を宜しくお願い致します。