| Предыдущий | Следующий |
| DB_E_BADCOMMANDID | DB_E_BADCONSTRAINTFORM |
DB_E_BADCONSTRAINTTYPE
Что означает DB_E_BADCONSTRAINTTYPE
DB_E_BADCONSTRAINTTYPE (0x80040E77) — ConstraintType недопустим или не поддерживается поставщиком.
Код 0x80040E77 относится не ко всему компоненту «OLE DB», а к операции в области «объекты команд, rowset, accessors, свойства и привязки поставщика». Сообщение «constrainttype недопустим или не поддерживается поставщиком» позволяет начать с темы «недопустимый, ограничение, тип».
Что проверить и как подтвердить исправление
Сначала проверьте допустимость и структуру входных данных первого неуспешного вызова. Для 0x80040E77 в условии «constrainttype недопустим или не поддерживается поставщиком» сверьте тип, размер, диапазон, маску флагов и принадлежность каждого дескриптора текущему объекту именно по контракту первого неуспешного метода.
Перед повтором 0x80040E77 зафиксируйте интерфейс и метод OLE DB, CLSID и версию поставщика, состояние command/rowset, предоставленные свойства и все записи объекта ошибок OLE DB; отдельно запишите HRESULT, DBID, DBCONSTRAINTDESC, DBCONSTRAINTTYPE, CLSID. Различия по теме «недопустимый, ограничение, тип» для 0x80040E77 покажут, изменился ли первый неуспешный этап.
Для 0x80040E77 применяйте исправление на границе первого отказа: исправляйте состояние конкретного объекта, маску флагов, описание привязок или поддерживаемое поставщиком свойство; не сводите результат к общей «ошибке базы данных». Сообщение «constrainttype недопустим или не поддерживается поставщиком» при 0x80040E77 не следует подавлять общей обработкой исключения.
Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x80040E77 и без обхода штатных проверок.
Документация для результата 0x80040E77: OLE DB data definition language · ITableDefinitionWithConstraints · IAlterTable::AlterTable.
Нужно найти другой код? Найти другой код состояния или ошибки.