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


Функция SQLInstallerError

Соответствия
Представлена версия: ODBC 3.0

Сводка
SQLInstallerError возвращает сведения об ошибке или состоянии для функций установщика ODBC.

Синтаксис

  
RETCODE SQLInstallerError(  
     WORD      iError,  
     DWORD *   pfErrorCode,  
     LPSTR     lpszErrorMsg,  
     WORD      cbErrorMsgMax,  
     WORD *    pcbErrorMsg);  

Аргументы

iError
[Входные данные] Номер записи ошибки. Допустимые числа : от 1 до 8.

pfErrorCode
[Выходные данные] Код ошибки установщика. (Дополнительные сведения см. в разделе "Комментарии".)

lpszErrorMsg
[Выходные данные] Указатель на хранилище для текста сообщения об ошибке.

cbErrorMsgMax
[Входные данные] Максимальная длина буфера szErrorMsg . Это значение должно быть меньше или равно SQL_MAX_MESSAGE_LENGTH минус символ завершения null.

cbErrorMsgMax
[Входные данные] Максимальная длина буфера szErrorMsg . Это значение должно быть меньше или равно SQL_MAX_MESSAGE_LENGTH минус символ завершения null.

pcbErrorMsg
[Выходные данные] Указатель на общее число байтов (за исключением символа завершения null), доступное для возврата в lpszErrorMsg. Если число байтов, доступных для возврата, больше или равно cbErrorMsgMax, текст сообщения об ошибке в lpszErrorMsg усечен до cbErrorMsgMax минус символ завершения null. Аргумент pcbErrorMsg может быть указателем null.

Возвраты

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA или SQL_ERROR.

Диагностика

SQLInstallerError не публикует для себя значения ошибок. SQLInstallerError возвращает SQL_NO_DATA, если не удается получить какие-либо сведения об ошибке (в этом случае pfErrorCode не определен). Если SQLInstallerError не может получить доступ к значениям ошибок по какой-либо причине, которые обычно возвращают SQL_ERROR, SQLInstallerError возвращает SQL_ERROR, но не публикует никаких значений ошибок. Если вы не знаете длину строки предупреждения (lpszErrorMsg), можно задать значение NULL lpszErrorMsg и вызвать SQLInstallerErrorError. Затем SQLInstallerError возвращает длину строки предупреждения в cbErrorMsgMax. Если буфер сообщения об ошибке слишком короткий, SQLInstallerError возвращает SQL_SUCCESS_WITH_INFO и возвращает правильное значение pfErrorCode для SQLInstallerErrorError.

Чтобы определить, произошла ли усечение в сообщении об ошибке, приложение может сравнить значение в аргументе cbErrorMsgMax с фактической длиной текста сообщения, записанного в аргумент pcbErrorMsg. Если усечение происходит, необходимо выделить правильную длину буфера для lpszErrorMsg и SQLInstallerError, используя соответствующую запись iError.

Комментарии

Приложение вызывает SQLInstallerError , когда предыдущий вызов функции установщика ODBC возвращает ЗНАЧЕНИЕ FALSE. Функция установки установщика ODBC и драйвера или переводчика публикует ноль или более ошибок, только если функция завершается ошибкой (возвращает значение FALSE); Поэтому приложение вызывает SQLInstallerError только после сбоя функции установщика ODBC.

Очередь ошибок установщика ODBC сбрасывается при каждом вызове новой функции установщика. Поэтому приложение не может ожидать получения ошибок для функций, отличных от последнего вызова функции установщика.

Чтобы получить несколько ошибок для вызова функции, приложение вызывает SQLInstallerError несколько раз.

Если нет дополнительных сведений, sqlInstallerError возвращает SQL_NO_DATA, аргумент pfErrorCode не определен, аргумент pcbErrorMsg равен 0, а аргумент lpszErrorMsg содержит один символ завершения null (если аргумент cbErrorMsgMax не равен 0).