入力した金額が元に戻ってしまう

2017-09-23

お客様から、何度入力しなおしても金額が元に戻ってしまうという報告を受けました。

具体的には、1648858を入れたつもりが1648860になり、1648858と修正しても1648860に戻るという事象です。

調査したところ、MySQLのリンクテーブルで、修正して更新しようとすると競合エラーが発生します。

当然ながらロックがかかり放しになっている可能性が高いと予想しました。

しかし、PhpMyAdminで確認する限りではロックされている様子はありません。

確認の方法が間違っている可能性もありましたが、埒があかないのでテーブルを作り直す方向で検討しました。

作業を進めるにあたり項目の型を確認したところ、該当の項目はfloatとなっていました。

しかし、MySQLはfloatより大きな数値を扱うことの出来るdoubleという型も存在します。

ダメ元で項目の型をdoubleに変更してみると・・・すんなり変更できました。

ただ、型を変更したことによりロックが解除された可能性も否めないため、今度はfloat型の項目を追加してみて試したところ、やはり事象が再現しました。

結局のところ型の問題だということが判明しました。

型を変更したことにより、Access側のリンクテーブルの再リンクが必要になる懸念がありましたが、特に何もしなくても接続で問題は発生しないことを確認して一安心。

ただ、float型だとどうして1648860が入力できないのかは謎のまま。

上限でもなさそうだし。。

気にはなりますがいつまでも立ち止まっていられないので一旦解決ということで。

 

 

Copyright© 2012-2016 サカノシステム設計事務所 All Rights Reserved.