Что означает код HRESULT 0x80040E3B (DB_E_BADSCALE)?

 
Предыдущий Следующий
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.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.