Правила диагностической обработки
Следующие правила управляют обработкой диагностики в SQLGetDiagRec и SQLGetDiagField.
Для всех компонентов ODBC:
Не следует заменять, изменять или маски ошибки или предупреждения, полученные от другого компонента ODBC.
Может добавить дополнительную запись состояния при получении диагностического сообщения от другого компонента ODBC. Добавленная запись должна добавить реальное значение информации в исходное сообщение.
Для компонента ODBC, который напрямую взаимодействует с источником данных:
Должен префиксировать идентификатор поставщика, его идентификатор компонента и идентификатор источника данных для диагностического сообщения, полученного из источника данных.
Должен сохранять собственный код ошибки источника данных.
Необходимо сохранить диагностическое сообщение источника данных.
Для любого компонента ODBC, который создает ошибку или предупреждение независимо от источника данных:
Должен указать правильную версию SQLSTATE для ошибки или предупреждения.
Должен создать текст диагностического сообщения.
Должен префиксировать идентификатор поставщика и его идентификатор компонента в диагностическом сообщении.
Должен возвращать собственный код ошибки, если он доступен и осмыслен.
Для компонента ODBC, который взаимодействует с диспетчером драйверов:
Должен инициализировать выходные аргументы SQLGetDiagRec и SQLGetDiagField.
Должен форматировать и возвращать диагностические сведения в качестве выходных аргументов SQLGetDiagRec и SQLGetDiagField при вызове этой функции.
Для одного компонента ODBC, отличного от диспетчера драйверов:
- Должен задать SQLSTATE на основе собственной ошибки. Для драйверов на основе файлов и драйверов на основе СУБД, которые не используют шлюз, драйвер должен задать SQLSTATE. Для драйверов на основе СУБД, использующих шлюз, драйвер или шлюз, поддерживающий ODBC, может задать SQLSTATE.