使用行集绑定 (ODBC)

使用列式绑定

  1. 对于每个绑定列,请执行以下作:

    • 分配 R(或更多)列缓冲区数组来存储数据值,其中 R 是行集中的行数。

    • (可选)分配 R(或更多)列缓冲区数组以存储数据长度。

    • 调用 SQLBindCol 将列的数据值和数据长度数组绑定到行集的列。

  2. 调用 SQLSetStmtAttr 以设置以下属性:

    • 将SQL_ATTR_ROW_ARRAY_SIZE设置为行集中的行数(R)。

    • 将SQL_ATTR_ROW_BIND_TYPE设置为SQL_BIND_BY_COLUMN。

    • 将 SQL_ATTR_ROWS FETCHED_PTR 属性设置为指向 SQLUINTEGER 变量以保存提取的行数。

    • 将SQL_ATTR_ROW_STATUS_PTR设置为指向 SQLUSSMALLINT 变量的数组[R],以保存行状态指示器。

  3. 执行语句。

  4. 每次调用 SQLFetch 或 SQLFetchScroll 都会检索 R 行并将数据传输到绑定列中。

使用行式绑定

  1. 分配结构数组[R],其中 R 是行集中的行数。 该结构具有每个列的一个元素,每个元素有两个部分:

    • 第一部分是用于保存列数据的相应数据类型的变量。

    • 第二部分是用于保存列状态指示器的 SQLINTEGER 变量。

  2. 调用 SQLSetStmtAttr 以设置以下属性:

    • 将SQL_ATTR_ROW_ARRAY_SIZE设置为行集中的行数(R)。

    • 将SQL_ATTR_ROW_BIND_TYPE设置为步骤 1 中分配的结构的大小。

    • 将 SQL_ATTR_ROWS_FETCHED_PTR 属性设置为指向 SQLUINTEGER 变量以保存提取的行数。

    • 将SQL_ATTR_PARAMS_STATUS_PTR设置为指向 SQLUSSMALLINT 变量的数组[R],以保存行状态指示器。

  3. 对于结果集中的每一列,调用 SQLBindCol ,将列的数据值和数据长度指针指向步骤 1 中分配的结构数组的第一个元素中的变量。

  4. 执行语句。

  5. 每次调用 SQLFetch 或 SQLFetchScroll 都会检索 R 行并将数据传输到绑定列中。

另请参阅

使用游标作指南主题 (ODBC)
如何实现游标
使用游标 (ODBC)