

下記Windows xp時代から利用されているLoaddata to DBのツールがあります。  
実行ファイル名xxxxxx.exeで中身不明です。  
長年にわたって使ったツールで多分プログラム自身は問題ないと思います。  
処理内容は入力ファイルにあるデータをデータベースへアップロードです。

先日、Windows xpで'xxxxxx.exe'を実行しましたら、下記エラーが表示され処理ができません。  
Access violation at address 0048DCBF in module 'xxxxxx.exe'.Read of addres
00000016.  
４パターンで入力ファイル別で同じプログラムを使って別々のデータベースへデータアップロード処理を行います。  
２パターン（２ＤＢ）処理正常で、２パターン（２ＤＢ）処理エラーでした。

メモリが不足したときに起こったと判断し、  
Windows xpからEXEファイル、dllファイル、必要データをWindows 7へ移行しました。

Windows 7で'xxxxxx.exe'を実行しましたら、  
Windows xpと同じパターンでエラーが表示され処理できません。  
以前バックアップ取ったEXEファイル、dllファイルを入れ替えてもエラーが表示されます。

その後、ＰＣ最適化、エラーチェック、デフラグ、ウイルスチェックなどを行ってから、  
一時的に治りましたが、また同じエラーで処理できません。  
今回は３パターン（３ＤＢ）処理正常で、１パターン（１ＤＢ）処理エラーです。  
またＰＣ最適化、エラーチェック、デフラグ、ウイルスチェックなどを行っても治りません。

プログラム処理でデータベースが破損されることになったら、Read of addres 00000016.  
などのエラーは発生されますか？

プログラムソースはないので、デバックとかできません。  
できるだけエラーを回避してそのツールを利用できればと思います。

どのように対応すれば教えていただけますか。


CC BY-SA 3.0
2015-12-02T08:28:39.583
19551
2015-12-03T01:58:42.160
2015-12-03T01:58:42.160
12546
12546
question
windows
「Access violation at address～」と表示され処理できません


エラーが発生した時点でデバッガーをアタッチすれば、原因個所がどこにあるかが判別できます。既にコメントが付いているように、おおよその場合において使用されているツールに問題があることが予想されます。

本来であれば、デバッグを行い修正すべきです。

* * *

それができない状況における質問だとは思います。その場合ですが、実行ファイルのプロパティの互換性タブで設定を行うことで、もしかすると動作するかもしれません。

* * *

それとは別の視点で、最終的には

> Read of addres 00000016.

でのエラーではありますが、このエラーに陥る前にヒープ破壊を引き起こしたためにデータ不正となっている可能性もあります。その場合ですが、何回か実行していると[フォールトトレラントヒープ](https://msdn.microsoft.com/ja-
jp/library/dd744764\(v=vs.85\).aspx)によりヒープ破壊を回避するようにWindowsが振る舞うこともあります。


CC BY-SA 3.0
2015-12-02T13:19:18.603
19565
2015-12-02T13:19:18.603
4236
19551
answer