处理结果
检索结果集信息。
如果使用绑定列,则对于要绑定到的每个列,请调用 SQLBindCol 将程序缓冲区绑定到该列。
对于结果集中的每一行:
调用 SQLFetch 以获取下一行。
如果使用绑定列,请使用绑定列缓冲区中现在可用的数据。
如果使用未绑定列,请多次调用 SQLGetData 以获取最后一个绑定列之后未绑定列的数据。 调用
SQLGetData应按列号的递增顺序进行。多次调用
SQLGetData以获取文本或图像列中的数据。
当 SQLFetch 通过返回SQL_NO_DATA来向结果集的末尾发出信号时,请调用 SQLMoreResults 以确定另一个结果集是否可用。
如果返回SQL_SUCCESS,则另一个结果集可用。
如果返回SQL_NO_DATA,则不再提供任何结果集。
如果它返回SQL_SUCCESS_WITH_INFO或SQL_ERROR,请调用 SQLGetDiagRec 来确定 PRINT 或 RAISERROR 语句的输出是否可用。
如果绑定语句参数用于输出参数或存储过程的返回值,请使用绑定参数缓冲区中现在可用的数据。 此外,使用绑定参数时,每次调用 SQLExecute 或 SQLExecDirect 都会执行 SQL 语句 S 次,其中 S 是绑定参数数组中的元素数。 这意味着将有 一组要 处理的结果,其中每个结果集都包含所有结果集、输出参数和通常由单个 SQL 语句执行返回的返回代码。
注释
当结果集包含计算行时,每个计算行都可用作单独的结果集。 这些计算结果集在普通行中交错,并将普通行分解为多个结果集。
(可选)使用SQL_UNBIND调用 SQLFreeStmt 以释放任何绑定列缓冲区。
如果另一个结果集可用,请转到步骤 1。
注释
若要在 SQLFetch 返回SQL_NO_DATA之前取消处理结果集,请调用 SQLCloseCursor。