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


Как обработать ошибки ODBC (ODBC)

Для получения сообщений ODBC можно использовать две функции ODBC: SQLGetDiagRec и SQLGetDiagField. Для получения в полях диагностики SQLState, pfNative и ErrorMessage сведений, касающихся ODBC, вызывайте SQLGetDiagRec до тех пор, пока не будет возвращено значение SQL_NO_DATA. Чтобы получить отдельные поля, можно вызвать SQLGetDiagField для каждой записи диагностики. Все зависящие от драйвера поля должны быть получены с помощью SQLGetDiagField.

SQLGetDiagRec и SQLGetDiagField обрабатываются диспетчером драйверов ODBC, а не отдельным драйвером. Диспетчер драйверов ODBC не кэширует зависящие от драйвера поля диагностики, пока не будет выполнено успешное соединение. Вызов SQLGetDiagField для зависящих от драйвера полей диагностики невозможен до успешного соединения. Это касается и команд соединения ODBC, даже если они возвращают SQL_SUCCESS_WITH_INFO. Зависящие от драйвера поля диагностики будут недоступны до следующего вызова функции ODBC.

Замечания

В этом полном образце показана работа простого обработчика ошибок, вызывающего функцию SQLGetDiagRec для получения стандартных сведений ODBC. Затем производит проверку допустимого соединения и, при положительном результате проверки, вызывает SQLGetDiagField для зависящих от драйвера полей диагностики SQL Server ODBC.

Полный образец кода находится в файле ProcessODBCErrors.cpp, который можно загрузить на странице Загрузки SQL Server центра загрузки MSDN. Этот образец разработан с помощью Microsoft Visual C++ 2005 и предназначен для ODBC версии 3.0 и выше.

Примечание по безопасностиПримечание по безопасности

При возможности используйте проверку подлинности Windows. Если проверка подлинности Windows недоступна, запросите у пользователя ввод учетных данных во время выполнения. Избегайте хранения учетных данных в файле. Если необходимо сохранить учетные данные, зашифруйте их с помощью API-интерфейса шифрования Win32.

См. также

Другие ресурсы