Python、sqlalchemy、pymssqlを使用して独自のMSSQLデータベースに接続しています。データベースは編集できず、データベースからデータを読み取るだけで済みます。これで、私のプログラムは、データベースで最初にクエリを実行したときにこのメッセージを吐き出します。
path/to/sqlalchemy/dialects/mssql/pymssql.py:50: SAWarning: Dialect mssql+pymssql does *not* support Decimal objects natively, and SQLAlchemy must convert from floating point - rounding errors and other issues may occur. Please consider storing Decimal numbers as strings or integers on this platform for lossless storage.
return sqltypes.Numeric.result_processor(self, dialect, type_)
これはsqlalchemyが私に話していることであり、Decimal型のフィールドからデータを読み取ると、データがFloatに変換され、プロセスで丸められることを意味します。
だから私はこれについて2つの質問があります...
まず、Linuxマシンで、この問題なしにMSSQLデータベースからDecimalデータを取得する方法はありますか?
次に、プログラムがクラッシュしたり例外を発生させたりするのではなく、このメッセージを出力するのはなぜですか?この小さなエラーに対処できる場合、メッセージが絶えず吐き出されるのを防ぐにはどうすればよいですか?