0

ADODB.recordset を使用して、decimal(15,2) として定義された列を含む SQL サーバー テーブルを読み取る ADODB (MDAC 2.8) を使用するデータ アクセス コンポーネントがあります。

このデータ アクセス コンポーネントは VB6 で記述されており、当社のソフトウェアで何年も使用されています。

ここで、VB6 を使用せずに互換性のあるコンポーネントを作成する必要があります (そのため、VB.NET で書き直しました)。

新しいコンポーネントへの移行を容易にするために、VB.NET から ADODB を使用することにしました。

ここで質問: "50000" (小数点なし) のデータを含む列から値を読み取り、それを文字列として返すと、vb6 コンポーネントは "50000" を配信しますが、VBNET バージョンは "50000,00" を配信します。

したがって、内部表現は問題ないため、これは表面的な問題である可能性がありますが、小数がどのように返されるかを決定するスイッチがあるかどうかは疑問です。

さらに、この範囲でこの互換性の問題を参照しているリンクは大歓迎です...

よろしくクラウス

4

1 に答える 1

1

ここに 2 つの大きな誤りがあります。

新しいコンポーネントへの移行を容易にするために、VB.NET から ADODB を使用することにしました。

これには正当な理由はありません。古い ADODB ではなく ADO.Net API を使用することで、すぐに (後でではなく) 感謝することでしょう。

「50000」のデータを含む列から値を読み取り(小数点なし)、文字列として返す場合

うーん。数値データを数値データとして保持します。実際にデータをユーザーに表示する直前まで、コード全体で Decimal 型を使用します。

于 2012-09-25T16:38:48.610 に答える