lld_open() 函数

此函数用于打开指定的大对象。

语法

API
LLD_IO* lld_open(conn, lob, flags, error)
      MI_CONNECTION*                conn;
      MI_ROW*                      lob;
      mi_integer                   flags,
      mi_integer*                  error);
ESQL/C
LLD_IO* lld_open(lob, flags, error);
   EXEC SQL BEGIN DECLARE SECTION;
         PARAMETER ROW lob;
   EXEC SQL END DECLARE SECTION;
            int flags;int* error; 
conn
先前通过调用 mi_open()mi_server_connect() 函数建立的连接描述符。 此参数仅适用于 API 接口。在此函数的 ESQL/C 和 SQL 版本中,您必须已经连接到服务器。
lob
指向 lld_locator 行的指针,用于识别要删除的对象。
flags
一组可设置的标志,用于在将大对象打开之后指定其属性。标志如下所示:
LLD_RDONLY
以只读方式打开大对象。如果设置了此标志,那么不能使用 lld_write 函数写入指定的大对象。
LLD_WRONLY
以只写方式打开大对象。如果设置了此标志,那么不能使用 lld_read() 函数读取指定的大对象。
LLD_RDWR
以读写方式打开大对象。
LLD_TRUNC
将大对象打开之后清除其内容。
LLD_APPEND
寻道至大对象的末尾以进行写入。打开对象之后,将在其开始位置放置文件指针。如果已经打开对象以进行读取或读写,那么可以在文件中的任何位置寻道并读取。但是,每当调用 lld_write() 以写入对象时,指针都将移到对象的结束位置,以保证不会覆盖任何数据。
LLD_SEQ
打开大对象以仅用于进行顺序访问。如果设置了此标志,那么不能对指定的大对象使用 lld_seek() 函数。
error
函数在其中返回错误代码的输出参数。

用途

lob 参数中,可以传递 lld_locator 行以识别要打开的大对象。在该行的 lo_protocol 字段中,可以指定要打开的大对象类型。lld_open() 函数将根据指定的类型调用相应的已打开例程。例如,对于文件,lld_open() 将使用操作系统文件函数来打开该文件,而对于智能大对象,将调用服务器的 mi_lo_open() 例程。

Large Object Locator 不直接支持两种基本的数据库功能:事务回滚和并行控制。因此,如果用于调用 lld_open() 的事务已终止,那么应调用 lld_close() 来关闭对象并回收任何已分配的资源。

应用程序还应提供一些锁定行之类的方法,以便保证不能同时有多个用户写入大对象。

请参阅大对象限制以获取有关事务回滚和并行控制的更多信息。

返回码

如果成功,此函数将返回指向其分配的 LLD_IO 结构的指针。LLD_IO 结构是私有结构,不应直接访问它或修改其内容。但是,可以将 LLD_IO 结构的指针传递到访问已打开的大对象的 Large Object Locator 例程,如 lld_write()lld_read() 等。

大对象将保持打开状态,直到您使用 lld_close() 函数明确地将其关闭。因此,如果在打开大对象之后遇到错误,那么您应负责通过将其关闭来回收资源。

如果失败,此函数将返回 NULL

上下文

lld_close() 函数

lld_create() 函数

lld_read() 函数

lld_seek() 函数

lld_tell() 函数

lld_write() 函数