Работа с базами данных


ВЫПОЛНЕНИЕ ПРОСТЕЙШИХ SQL-ОПЕРАТОРОВ С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ ODBC - часть 3


SQL_UNBIND - освобождает все буферы столбцов, которые повторно используются функцией SQLBindCol для данного идентификатора оператора.

SQL_RESET_PARAMS - освобождает все буферы параметров, которые были установлены функцией SQLBindCol для данного идентификатора оператора.

2. Средства отслеживания ошибок

Для отслеживания ошибок в ODBC используется функция SQLError, которая возвращает сообщение об ошибке при неудачном завершении какой-либо функции ODBC.

Каждая ODBC-функция возвращает RETCODE, который принимает одно из нижеследующих значений:

  • SQL_SUCCESS Операция выполнена без ошибки.;
  • SQL_SUCCESS_WITH_INFO Функция завершена, но при вызове SQLError указывает на ошибку. В большинстве случаев это возникает, когда значение, которое должно быть возвращено очень большого размера, чем это предусмотрено буфером прикладной программы;
  • SQL_ERROR Функция не была завершена из-за возникшей ошибки. При вызове SQLError можно будет получить больше информации о сложившейся ситуации;
  • SQL_INVALID_HANDLE Не правильно определен идентификатор окружения, соединения или оператора. Это часто случается, когда идентификатор используется после того, как он был освобожден или если был определен нулевой указатель;
  • SQL_NO_DATA_FOUND Больше нет подходящей информации. Фактически это не является ошибкой. Чаще всего такой статус возникает при использовании курсора, когда больше нет строк для его продвижения;
  • SQL_NEED_DATA Необходимы данные для параметра.

RETCODE SQLError (henv, hdbc, hsmt, szSqlState, pfNativeError, szErrorMsg, cbErrorMsgMax, cbErrorMsg)

HENV henv - идентификатор окружения.

HDBC hdbc - идентификатор соединения.

HSTMT hsmt - идентификатор оператора.

UCHAR szSqlState - SQLSTATE в качестве строки завершения.

SDWORD pfNativeError - в этом параметре и будет возвращена ошибка, возникшая в СУБД, а также ее собственный код. Если соответствующего собственного кода ошибки не существует, то возвращается ноль.

UCHAR szErrorMsg - указатель на буфер, куда будет возвращен текст ошибки (строка с нулевым окончанием).




Начало  Назад  Вперед



Книжный магазин