32,7893256547 не является допустимым значением BCD

У меня есть числовой (26,10) столбец "x" в SQL Server 2008. Когда я пытаюсь прочитать значения столбца, используя FieldByName('x') TADOQuery.AsExtended, я получаю ошибку "32,7893256547 не является допустимым BCD значение".

"32,7893256547" является одним из значений столбца.

Это происходит только на некоторых компьютерах. На тех компьютерах, когда я изменяю настройку Windows "Количество цифр после десятичной дроби" на 9 в настройках региона, то все работает нормально.

Я вижу, что столбец сопоставлен с TFMTBCDField в ADOQuery.

Это проблема с преобразованием / форматированием BCD? И как я могу решить эту проблему?

Платформа: Windows 7, Delphi 2009, SQL Server 2008.

2 ответа

Решение

У меня была такая же проблема, когда я пытался использовать

ADOQuery1.FieldByName('YourField').AsString;

Решено с этим:

BCDToStrf(ADOQuery1.FieldByName('YourField').AsBCD,ffFixed,11,3) ;

Мне помогает изменить десятичную точку в Windows 7 от запятой до точки и обратно в Пуск> Панель управления> Часы, язык и регион> Изменить формат даты, времени и чисел и изменить десятичную точку для чисел и валюты с запятой на точку или другим способом. вокруг и обратно.

Извините, но я использую Windows на чешском языке, и у нас есть запятая в качестве десятичной точки по умолчанию. Некоторые подписи переведены на английский язык, поэтому они не должны быть точными.

Другие вопросы по тегам