Поделиться через


Правила диагностической обработки

Следующие правила управляют обработкой диагностики в SQLGetDiagRec и SQLGetDiagField.

Для всех компонентов ODBC:

  • Не следует заменять, изменять или маски ошибки или предупреждения, полученные от другого компонента ODBC.

  • Может добавить дополнительную запись состояния при получении диагностического сообщения от другого компонента ODBC. Добавленная запись должна добавить реальное значение информации в исходное сообщение.

Для компонента ODBC, который напрямую взаимодействует с источником данных:

  • Должен префиксировать идентификатор поставщика, его идентификатор компонента и идентификатор источника данных для диагностического сообщения, полученного из источника данных.

  • Должен сохранять собственный код ошибки источника данных.

  • Необходимо сохранить диагностическое сообщение источника данных.

Для любого компонента ODBC, который создает ошибку или предупреждение независимо от источника данных:

  • Должен указать правильную версию SQLSTATE для ошибки или предупреждения.

  • Должен создать текст диагностического сообщения.

  • Должен префиксировать идентификатор поставщика и его идентификатор компонента в диагностическом сообщении.

  • Должен возвращать собственный код ошибки, если он доступен и осмыслен.

Для компонента ODBC, который взаимодействует с диспетчером драйверов:

  • Должен инициализировать выходные аргументы SQLGetDiagRec и SQLGetDiagField.

  • Должен форматировать и возвращать диагностические сведения в качестве выходных аргументов SQLGetDiagRec и SQLGetDiagField при вызове этой функции.

Для одного компонента ODBC, отличного от диспетчера драйверов:

  • Должен задать SQLSTATE на основе собственной ошибки. Для драйверов на основе файлов и драйверов на основе СУБД, которые не используют шлюз, драйвер должен задать SQLSTATE. Для драйверов на основе СУБД, использующих шлюз, драйвер или шлюз, поддерживающий ODBC, может задать SQLSTATE.