Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каждая функция в ODBC возвращает код, известный как код возврата, который указывает на общий успех или сбой функции. Логика программы обычно основана на кодах возврата.
Например, следующий код вызывает SQLFetch , чтобы получить строки в результирующем наборе. Он проверяет код возврата функции, чтобы определить, был ли достигнут конец результирующего набора (SQL_NO_DATA), возвращены ли какие-либо предупреждения (SQL_SUCCESS_WITH_INFO) или произошла ошибка (SQL_ERROR).
SQLRETURN rc;
SQLHSTMT hstmt;
while ((rc=SQLFetch(hstmt)) != SQL_NO_DATA) {
if (rc == SQL_SUCCESS_WITH_INFO) {
// Call function to display warning information.
} else if (rc == SQL_ERROR) {
// Call function to display error information.
break;
}
// Process row.
}
Код возврата SQL_INVALID_HANDLE всегда указывает на ошибку программирования и никогда не должен встречаться во время выполнения. Все остальные коды возврата предоставляют сведения о времени выполнения, хотя SQL_ERROR могут указывать на ошибку программирования.
В следующей таблице определены коды возврата.
| Код возврата | Description |
|---|---|
| SQL_SUCCESS | Функция успешно завершена. Приложение вызывает SQLGetDiagField для получения дополнительных сведений из записи заголовка. |
| SQL_SUCCESS_WITH_INFO | Функция успешно завершена, возможно, с нефатальной ошибкой (предупреждением). Приложение вызывает SQLGetDiagRec или SQLGetDiagField для получения дополнительных сведений. |
| ОШИБКА_SQL | Сбой функции. Приложение вызывает SQLGetDiagRec или SQLGetDiagField для получения дополнительных сведений. Содержимое всех выходных аргументов функции не определено. |
| SQL_INVALID_HANDLE | Произошла ошибка выполнения функции из-за неправильной среды, соединения, запроса или дескриптора. Это означает ошибку программирования. Дополнительные сведения не доступны из SQLGetDiagRec или SQLGetDiagField. Этот код возвращается только в том случае, если дескриптор имеет значение NULL или является неправильным типом, например, когда дескриптор инструкции передается для аргумента, требующего дескриптора соединения. |
| ДАННЫХ_НЕТ | Больше данных не было доступно. Приложение вызывает SQLGetDiagRec или SQLGetDiagField для получения дополнительных сведений. Может быть возвращена одна или несколько записей состояния, определенных драйвером в классе 02xxx. Примечание: В ODBC 2. x, этот код возврата был назван SQL_NO_DATA_FOUND. |
| SQL_NEED_DATA | Требуется больше данных, например при отправке данных параметров во время выполнения или дополнительных сведений о подключении. Приложение вызывает SQLGetDiagRec или SQLGetDiagField , чтобы получить дополнительные сведения, если таковые есть. |
| SQL_STILL_EXECUTING | Функция, запущенная асинхронно, по-прежнему выполняется. Приложение вызывает SQLGetDiagRec или SQLGetDiagField , чтобы получить дополнительные сведения, если таковые есть. |