VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

SQLBulkOperations

功能描述

执行批量插入和批量书签操作,包括按书签更新、删除和提取。

接口原型

RETCODE	SQL_API
SQLBulkOperations(HSTMT hstmt,
SQLSMALLINT operation)

参数说明

参数名 参数说明
hstmt 语句句柄。
operation 要执行的操作:
  • SQL_ADD:添加新行。
  • SQL_UPDATE_BY_BOOKMARK :更新一组行,其中每行由书签标识。
  • SQL_DELETE_BY_BOOKMARK :删除一组行,其中每行由书签标识。
  • SQL_FETCH_BY_BOOKMARK:提取一组行,其中每行由书签标识。

返回

  • SQL_SUCCESS:表示调用正确。
  • SQL_ERROR:表示比较严重的错误,如:内存分配失败、建立连接失败等。
  • SQL_INVALID_HANDLE:表示调用无效句柄。其他API的返回值同理

其他

调用 SQLBulkOperations 后,未定义块游标位置。 应用程序必须调用 SQLFetchScroll 来设置光标位置。 应用程序只能使用包含 SQL_FETCH_FIRST、SQL_FETCH_LAST、SQL_FETCH_ABSOLUTE 或 SQL_FETCH_BOOKMARK 的 FetchOrientation 参数调用 SQLFetchScroll。 如果应用程序使用包含 SQL_FETCH_PRIOR、SQL_FETCH_NEXT 或 SQL_FETCH_RELATIVE 的 FetchOrientation 参数调用 SQLFetch 或 SQLFetchScroll, 则游标位置未定义。

可以通过将调用 SQLBindCol 中指定的列长度/指示器缓冲区设置为 SQL_COLUMN_IGNORE,在 调用 SQLBulkOperations 时执行的批量操作中忽略列。

应用程序在调用 SQLBulkOperations 时不需要设置 SQL_ATTR_ROW_OPERATION_PTR 语句属性,因为在对此函数执行批量操作时不能忽略行。

SQL_ATTR_ROWS_FETCHED_PTR 语句属性指向的缓冲区包含受 调用 SQLBulkOperations 影响的行数。

当 Operation 参数为 SQL_ADD 或 SQL_UPDATE_BY_BOOKMARK 且与游标关联的查询规范的 select-list 包含多个对同一列的引用时,驱动程序定义是生成错误还是驱动程序忽略重复的引用并执行请求的操作。