此函数用于打开指定的大对象。
LLD_IO* lld_open(conn, lob, flags, error) MI_CONNECTION* conn; MI_ROW* lob; mi_integer flags, mi_integer* error);
LLD_IO* lld_open(lob, flags, error); EXEC SQL BEGIN DECLARE SECTION; PARAMETER ROW lob; EXEC SQL END DECLARE SECTION; int flags;int* 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。