| Предыдущий | Следующий |
| DB_E_BADPRECISION | DB_E_BADTABLEID |
DB_E_BADSCALE
Что означает DB_E_BADSCALE
DB_E_BADSCALE означает, что scale для numeric/decimal value не соответствует ограничениям OLE DB provider, parameter binding или target column. Это отличается от overflow: число может помещаться по величине, но иметь недопустимое количество дробных разрядов.
Что проверить
- Сохраните source type,
precision,scaleи фактическое значение до conversion. - Сравните metadata accessor/binding с schema целевого столбца или параметра.
- Проверьте, не меняет ли промежуточный слой scale при преобразовании DECIMAL/NUMERIC.
Как исправить
Согласуйте binding metadata с контрактом provider и выполняйте явное округление только по правилам приложения. Не «исправляйте» результат простым отбрасыванием дробной части: это может изменить бизнес-значение и скрыть ошибку schema/binding.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
