2

SQL Server 2008 に Numeric(26,10) 列 "x" があります。TADOQuery の FieldByName('x').AsExtended を使用して列の値を読み取ろうとすると、「32,7893256547 は有効な BCD ではありません」というエラーが表示されます。価値"。

「32,7893256547」は、列の値の 1 つです。

これは、一部のコンピューターでのみ発生します。これらのコンピューターでは、地域設定で Windows 設定の「小数点以下の桁数」を 9 に変更すると、すべて正常に動作します。

列が ADO​​Query の TFMTBCDField にマップされていることがわかります。

BCD 変換/フォーマットに問題がありますか? そして、どうすればこの問題を解決できますか?

プラットフォーム: Windows 7、Delphi 2009、SQL Server 2008。

4

2 に答える 2

1

使用しようとしたときに同じ問題が発生しました

ADOQuery1.FieldByName('YourField').AsString;

これで解決:

BCDToStrf(ADOQuery1.FieldByName('YourField').AsBCD,ffFixed,11,3) ;
于 2012-08-27T18:12:54.110 に答える
1

Windows 7 の小数点をコンマからポイントに変更し、[スタート] > [コントロール パネル] > [時計、言語、および地域] > [日付、時刻、および数値の形式を変更] で変更し、数値と通貨の小数点をコンマからポイントに、またはその逆に変更するのに役立ちます。前後。

申し訳ありませんが、私はチェコ語で Windows を使用しており、デフォルトの小数点としてコンマ区切りがあります。一部のキャプションは私が英語に翻訳しているため、正確である必要はありません。

于 2013-08-19T07:42:43.890 に答える