使用行集绑定 (ODBC)
使用按列绑定
对于每个绑定列,执行以下操作:
分配一个包含 R(或更多)个列缓冲区的数组以存储数据值,其中,R 是行集中的行数。
此外,可以选择分配一个包含 R(或更多)个列缓冲区的数组以存储数据长度。
调用 SQLBindCol 将列的数据值和数据长度数组绑定到行集的 列。
调用 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],以包含行状态指示器。
执行语句。
每次调用 SQLFetch 或 SQLFetchScroll 都会检索 R 行并将数据传输到绑定列中。
使用按行绑定
分配结构数组 [R],其中,R 是行集中的行数。 该结构对于每列都有一个元素,并且每个元素有两部分:
第一部分是适当的数据类型的变量,用于包含列数据。
第二部分是 SQLINTEGER 变量,用于包含列状态指示器。
调用 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],以包含行状态指示器。
对于结果集中的每一列,调用 SQLBindCol 将列的数据值和数据长度指针指向步骤 1 中分配的结构数组的第一个元素中的变量。
执行语句。
每次调用 SQLFetch 或 SQLFetchScroll 都会检索 R 行并将数据传输到绑定列中。