SQLSetPos
功能描述
设置行集的游标位置,并允许应用程序刷新行集的数据或更新或删除结果集内的数据。
接口原型
RETCODE SQL_API
SQLSetPos(HSTMT hstmt,
SQLSETPOSIROW irow,
SQLUSMALLINT fOption,
SQLUSMALLINT fLock)
参数说明
参数名 | 参数说明 |
---|---|
hstmt | 语句句柄。 |
irow | 行集内要执行fOption 参数指定的操作 行的位置。 如果 RowNumber 为 0,则操作将应用于行集的每一行。 |
fOption | 要执行的操作: SQL_POSITION:驱动程序将光标置于 RowNumber 指定的行上。 SQL_REFRESHS:驱动程序将光标置于 RowNumber 指定的行上,并刷新该行的行集缓冲区中的数据。 QL_UPDATE:驱动程序将光标置于 RowNumber 指定的行上,然后使用行集缓冲区中的值更新数据的基础行 (SQLBindCol) 中的 TargetValue参数。 它从 SQLBindCol (中的 StrLen_or_IndPtr 参数的长度/指示器缓冲区中检索) 。 如果任何列的长度为 SQL_COLUMN_IGNORE,则不更新该列。 更新行后,驱动程序将行状态数组的相应元素SQL_ROW_UPDATED或SQL_ROW_SUCCESS_WITH_INFO (行状态数组存在时) SQL_DELETE:驱动程序将光标定位在 RowNumber 指定的行上,并删除数据的基础行。 它将行状态数组的相应元素更改为SQL_ROW_DELETED。 删除行后,以下语句对行无效:定位的更新和删除语句、对 SQLGetData 的调用,以及对 SQLSetPos 的调用,操作设置为除 SQL_POSITION。 对于支持打包的驱动程序,从数据源检索新数据时,将从游标中删除该行。 |
fLock | 指定在执行 fOption 参数中指定的操作后如何锁定行。 SQL_LOCK_NO_CHANGE:驱动程序或数据源可确保行与调用 SQLSetPos 之前的状态相同,保持锁定或解锁状态。 LockType 的此值 允许不支持显式行级锁定的数据源使用当前并发和事务隔离级别所需的任何锁定。 SQL_LOCK_EXCLUSIVE:驱动程序或数据源以独占方式锁定行。 不同连接或不同应用程序中的 语句不能用于获取行上的任何锁。 SQL_LOCK_UNLOCK:驱动程序或数据源解锁行。 |
返回
- SQL_SUCCESS:表示调用正确。
- SQL_ERROR:表示比较严重的错误,如:内存分配失败、建立连接失败等。
- SQL_INVALID_HANDLE:表示调用无效句柄。其他API的返回值同理。
其他
无。