处理结果 (ODBC)

处理结果

  1. 检索结果集信息。

  2. 如果使用绑定列,则对于要绑定到的每个列,请调用 SQLBindCol 将程序缓冲区绑定到该列。

  3. 对于结果集中的每一行:

    • 调用 SQLFetch 以获取下一行。

    • 如果使用绑定列,请使用绑定列缓冲区中现在可用的数据。

    • 如果使用未绑定列,请多次调用 SQLGetData 以获取最后一个绑定列之后未绑定列的数据。 调用 SQLGetData 应按列号的递增顺序进行。

    • 多次调用 SQLGetData 以获取文本或图像列中的数据。

  4. SQLFetch 通过返回SQL_NO_DATA来向结果集的末尾发出信号时,请调用 SQLMoreResults 以确定另一个结果集是否可用。

    • 如果返回SQL_SUCCESS,则另一个结果集可用。

    • 如果返回SQL_NO_DATA,则不再提供任何结果集。

    • 如果它返回SQL_SUCCESS_WITH_INFO或SQL_ERROR,请调用 SQLGetDiagRec 来确定 PRINT 或 RAISERROR 语句的输出是否可用。

      如果绑定语句参数用于输出参数或存储过程的返回值,请使用绑定参数缓冲区中现在可用的数据。 此外,使用绑定参数时,每次调用 SQLExecuteSQLExecDirect 都会执行 SQL 语句 S 次,其中 S 是绑定参数数组中的元素数。 这意味着将有 一组要 处理的结果,其中每个结果集都包含所有结果集、输出参数和通常由单个 SQL 语句执行返回的返回代码。

    注释

    当结果集包含计算行时,每个计算行都可用作单独的结果集。 这些计算结果集在普通行中交错,并将普通行分解为多个结果集。

  5. (可选)使用SQL_UNBIND调用 SQLFreeStmt 以释放任何绑定列缓冲区。

  6. 如果另一个结果集可用,请转到步骤 1。

注释

若要在 SQLFetch 返回SQL_NO_DATA之前取消处理结果集,请调用 SQLCloseCursor

另请参阅

处理结果作方法主题 (ODBC)