Бөлісу құралы:


Коды возврата ODBC

Каждая функция в 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_ERROR Сбой функции. Приложение вызывает SQLGetDiagRec или SQLGetDiagField для получения дополнительных сведений. Содержимое всех выходных аргументов функции не определено.
SQL_INVALID_HANDLE Сбой функции из-за недопустимой среды, соединения, инструкции или дескриптора. Это означает ошибку программирования. Дополнительные сведения не доступны из SQLGetDiagRec или SQLGetDiagField. Этот код возвращается только в том случае, если дескриптор имеет значение NULL или является неправильным типом, например, когда дескриптор инструкции передается для аргумента, требующего дескриптора соединения.
SQL_NO_DATA Больше данных не было доступно. Приложение вызывает SQLGetDiagRec или SQLGetDiagField для получения дополнительных сведений. Может быть возвращена одна или несколько записей состояния, определенных драйвером в классе 02xxx. Примечание. В ODBC 2.x, этот код возврата был назван SQL_NO_DATA_FOUND.
SQL_NEED_DATA Требуется больше данных, например при отправке данных параметров во время выполнения или дополнительных сведений о подключении. Приложение вызывает SQLGetDiagRec или SQLGetDiagField , чтобы получить дополнительные сведения, если таковые есть.
SQL_STILL_EXECUTING Функция, запущенная асинхронно, по-прежнему выполняется. Приложение вызывает SQLGetDiagRec или SQLGetDiagField , чтобы получить дополнительные сведения, если таковые есть.