ifx_lo_lock() 函数允许您锁定智能大对象中显式范围的字节。
语法
mint ifx_lo_lock(LO_fd, offset, whence, range, lockmode)
mint LO_fd;
int8 *offset;
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 780 -
mint whence;
int8 *range;
mint lockmode;
LO_fd
要在其中锁定字节的范围的智能大对象的 LO 文件描述符。offset
指向指定偏移量的 8 字节整数(INT8)的指针,锁定始于智能大对象之内的该偏移
量。
whence
指定从被计算的偏移量的哪个点的 mint 常量:智能大对象的开始、智能大对象内的
当前位置或智能大对象的末尾。
range
指向指定要锁定的字节数的 8 字节整数(INT8)的指针。
lockmode
锁定指定的字节所采用的模式。对于排他锁,请设置为 LO_EXCLUSIVE_MODE,或
对于共享锁,请设置为 LO_SHARED_MODE。
用法
对于 LO_fd 指定的智能大对象,ifx_lo_lock() 函数锁定由 range 指定的字节数,始
于由 offset 和 whence 指定的位置。
ifx_lo_lock() 函数放置 lockmode 指定的类型的锁。
如
果您指定 ISSLOCK,则 ifx_lo_lock() 在字节范围上放置共享锁。如果您指定 ISXLOCK,
则 ifx_lo_lock() 在字节范围上放置排他锁。
在您调用 ifx_lo_lock() 之前,您必须取得有效的 LO 文件描述符,这需要通过调用
ifx_lo_create() 来创建新的智能大对象,或通过调用 ifx_lo_open() 来打开现有的智能大对
象。
ifx_lo_lock() 函数使用 whence 和 offset 参数来确定搜寻位置,如下:
whence 值标识从哪里开始搜寻。
有效的值包括 locator.h 头文件定义的下列常量。
Whence 常量
启动搜寻位置
LO_SEEK_SET
智能大对象的启动
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 781 -
LO_SEEK_CUR
智能大对象中当前的搜寻位置
LO_SEEK_END
智能大对象的末尾
offset 参数标识以字节计的偏移量,从开始锁定的字节的(whence 参数指定的)起始
搜寻位置。
除了锁定 nbytes 之外,您还可锁定从指定的偏移量至大对象的末尾的字节,在此,
您可指定该大对象的当前末尾或最大末尾。您可使用两个整数常量(LO_CURRENT_END
和 LO_MAX_END)表示这些值。要使用这些值之一,首先将它转换为 int8 值,然后对
于 nbytes 参数使用它。
返回代码
0
函数成功。
< 0
函数不成功。返回的值为 sqlcode,其为 GBase 8s 错误消息的数目。