处理结果 (ODBC)
处理结果
检索结果集信息。
如果使用了绑定列,则对每个要绑定的列,调用 SQLBindCol,以将程序缓冲区绑定到该列。
对于结果集中的每一行:
调用 SQLFetch 以获取下一行。
如果使用绑定列,则在绑定列缓冲区使用现在可用的数据。
如果使用绑定列,在最后一个绑定列后一次或多次调用 SQLGetData 以获取未绑定列的数据。 应按列号递增的顺序调用 SQLGetData。
多次调用 SQLGetData 以从 text 或 image 列获取数据。
当 SQLFetch 通过返回 SQL_NO_DATA 指示到达结果集末尾时,调用 SQLMoreResults 确定是否有其他可用结果集。
如果返回 SQL_SUCCESS,则其他结果集可用。
如果返回 SQL_NO_DATA,则没有其他结果集可用。
如果返回 SQL_SUCCESS_WITH_INFO 或 SQL_ERROR,则调用 SQLGetDiagRec 以确定来自 PRINT 或 RAISERROR 语句的输出是否可用。
如果绑定语句参数用于某一存储过程的输出参数或返回值,则使用绑定参数缓冲区中当前可用的数据。 此外,在使用绑定参数时,对 SQLExecute 或 SQLExecDirect 的每个调用都将已执行此 SQL 语句 S 次,其中,S 是绑定参数数组中元素的数目。 这意味着,将存在 S 组要处理的结果,其中每组结果都由所有结果集、输出参数以及 SQL 语句的单次执行通常返回的返回代码构成。
注意
在某一结果集包含计算行时,每个计算行都可作为单独的结果集提供。 这些计算结果集混杂在普通行内,并且将普通行分为多个结果集。
根据需要使用 SQL_UNBIND 调用 SQLFreeStmt以释放任何绑定列缓冲区。
如果其他结果集可用,则转到步骤 1。
![]() |
---|
若要在 SQLFetch 返回 SQL_NO_DATA 之前取消处理结果集,请调用 SQLCloseCursor。 |