返回代码 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 可以指示编程错误。
下表定义了返回代码。
返回代码 | 说明 |
---|---|
SQL_SUCCESS | 函数已成功完成。 应用程序调用 SQLGetDiagField 从标头记录中检索其他信息。 |
SQL_SUCCESS_WITH_INFO | 函数成功完成,可能出现非严重错误(警告)。 应用程序调用 SQLGetDiagRec 或 SQLGetDiagField 来检索其他信息。 |
SQL_ERROR | 函数失败。 应用程序调用 SQLGetDiagRec 或 SQLGetDiagField 来检索其他信息。 函数的任何输出参数的内容均未定义。 |
SQL_INVALID_HANDLE | 由于环境句柄、连接句柄、语句句柄或描述符句柄无效,函数失败。 这表示编程错误。 SQLGetDiagRec 或 SQLGetDiagField 不提供任何其他信息。 仅当句柄为空指针或错误类型时(例如,为需要连接句柄的参数传递语句句柄时),才会返回此代码。 |
SQL_NO_DATA | 没有更多可用数据。 应用程序调用 SQLGetDiagRec 或 SQLGetDiagField 来检索其他信息。 可以返回 02xxx 类中的一个或多个驱动程序定义状态记录。 注意:在 ODBC 2.x 中,此返回代码命名为 SQL_NO_DATA_FOUND。 |
SQL_NEED_DATA | 需要更多数据,例如在执行时发送了参数数据或需要其他连接信息时。 应用程序调用 SQLGetDiagRec 或 SQLGetDiagField 来检索其他信息(如果存在)。 |
SQL_STILL_EXECUTING | 异步启动的函数仍在执行。 应用程序调用 SQLGetDiagRec 或 SQLGetDiagField 来检索其他信息(如果存在)。 |