使用行集绑定 (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. 每次调用 SQLFetchSQLFetchScroll 都会检索 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. 每次调用 SQLFetchSQLFetchScroll 都会检索 R 行并将数据传输到绑定列中。

另请参阅

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