步骤 4a:提取结果

下一步是提取结果,如下图所示。

Shows fetching results in an ODBC application

如果在“步骤 3:生成并执行 SQL 语句”中执行的语句是 SELECT 语句或目录函数,则应用程序首先调用 SQLNumResultCols 来确定结果集中的列数。 如果应用程序已经知道结果集列的数量,例如在纵向或自定义应用程序中硬编码 SQL 语句时,则不需要执行此步骤。

接下来,应用程序使用 SQLDescribeCol 检索每个结果集列的名称、数据类型、精度和小数位数。 同样,对于已经知道此信息的应用程序(如纵向应用程序和自定义应用程序)来说,这并不是必需的。 应用程序将此信息传递给 SQLBindCol,该函数将应用程序变量绑定到结果集中的列。

现在,应用程序调用 SQLFetch 来检索第一行数据,并将该行中的数据放置在与 SQLBindCol 绑定的变量中。 如果行中存在任何长数据,则调用 SQLGetData 来检索该数据。 应用程序继续调用 SQLFetch 和 SQLGetData 以检索其他数据。 提取完数据后,会调用 SQLCloseCursor 关闭游标。

有关检索结果的完整说明,请参阅检索结果(基本)检索结果(高级)。

现在,应用程序返回到“步骤 3:生成并执行 SQL 语句”,在同一事务中执行另一个语句;或者继续执行“步骤 5:提交事务”,提交或回滚事务。