変数にセットされる値について

解決


ロト  2011-11-04 23:05:19  No: 41181

こんにちは初めて利用します。

現在、テスト環境と本番環境で計算結果に差異が出て困っています。
環境はDelphi7、DBはsybase、DB2を使用しており、OSはWindowsXPです。
本番環境もテスト環境もファイルサーバーやDBサーバーの筐体が違う
だけで環境は同じです。

処理を書くと非常に煩雑になるので簡単にしか書きませんが、

x:integer;
y:integer;
z:integer;
z := x div y;

とした場合のzの結果がテスト環境と本番環境で全部異なる
わけではなく、処理対象が300件あれば2〜5件位異なる場合が
発生することがあります。3年前位から使用していたシステムで
急にここ数日発生するようになりました。実数計算している
わけでないので計算に差異が出ると思えません。テスト環境では
思ったとおりの値が得られるのですが本番環境だけうまくいきません。

これだけの情報で回答を頂くのは厳しいかと思いますが、
調査しても全くわかりません。何か糸口なるようなほんの
わずかなヒントでもいただけると助かります。

よろしくお願いします。


igy  2011-11-05 01:14:52  No: 41182

x, y, z の値をログとして出力して、
・x, yに正しい値が格納されているが計算結果に誤りがあるのか
・x, yに格納される時点で予期しない値が格納されているか
とか、調べてみるのはいかがですか?


ロト  2011-11-05 01:55:45  No: 41183

早速の御回答ありがとうございます。

やはりログを入れることが確実ですよね。

実は、お客様のシステムでログを入れるのをお客様が嫌がっているので、
困っているのですが(個人情報の保護の観点や本番機へのリリースが
大変などなどいろいろと事情がありまして....)、どうにかお客様を
説得してみます。

また、進展がございましたら、御報告させていただきます。


お客  2011-11-13 00:30:24  No: 41184

処理を書くと非常に煩雑になるので簡単にしか書きませんが、

x:integer;
y:integer;
z:integer;
z := x div


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加