使用 SQLBulkOperations 更新数据

应用程序可以通过调用 SQLBulkOperations 对数据源上的基础表执行批量更新、删除、提取或插入操作。 调用 SQLBulkOperations 是一种构造和执行 SQL 语句的便捷替代方法。 它允许 ODBC 驱动程序支持定位更新,即使数据源不支持定位的 SQL 语句。 它是通过函数调用实现完整数据库访问的范例的一部分。

SQLBulkOperations 对当前行集进行操作,且只能在调用 SQLFetch 或 SQLFetchScroll 后使用。 应用程序通过缓存书签来指定要更新、删除或刷新的行。 驱动程序从行集缓冲区检索要更新的行的新数据或要插入到基础表中的新数据。

SQLBulkOperations 要使用的行集的大小是通过调用 SQLSetStmtAttr 来设置的,其 Attribute参数为 SQL_ATTR_ROW_ARRAY_SIZE。 SQLSetPos 只在调用 SQLFetch 或 SQLFetchScroll 后才使用新的行集大小,而 SQLBulkOperations 是在调用 SQLSetStmtAttr 后使用新的行集大小。

由于大多数与关系数据库的交互都是通过 SQL 完成的,因此 SQLBulkOperations 没有得到广泛支持。 但是,驱动程序可以通过构造和执行 UPDATE、DELETE 或 INSERT 语句轻松地对它进行模拟。

若要确定 SQLBulkOperation 支持哪些操作,应用程序可以使用 SQL_DYNAMIC_CURSOR_ATTRIBUTES1、SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1、SQL_KEYSET_CURSOR_ATTRIBUTES1 或 SQL_STATIC_CURSOR_ATTRIBUTES1 信息选项来调用 SQLGetInfo(具体取决于游标的类型)。

本部分包含以下主题。