此函数用于复制指定的大对象。
MI_ROW* lld_copy(conn, src, dest, error); MI_CONNECTION* conn, MI_ROW* src, MI_ROW* dest, mi_integer* error
ifx_collection_t* lld_copy (src, dest, error); EXEC SQL BEGIN DECLARE SECTION; PARAMETER ROW src; PARAMETER ROW dest; EXEC SQL END DECLARE SECTION; int* error;
CREATE FUNCTION LLD_Copy (src LLD_Locator, dest LLD_Locator) RETURNS LLD_Locator;
此函数用于复制现有大对象。
如果目标对象已存在,请将指针传递到其 lld_locator 行作为 dest 参数。
如果目标对象不存在,将使用以下值将 lld_locator 行作为 dest 参数传递到 lld_copy():
在 lo_protocol 字段中,指定要创建的大对象类型。
lld_copy() 函数将创建您指定的大对象类型,将源对象复制到该大对象,并按照原样返回您所传递的行。
如果要复制到智能大对象,请为将作为 dest 参数传递的 lld_locator 行中的 lo_pointer 和 lo_location 字段指定 NULL。lld_copy() 函数将返回 lld_locator 行,且带有指向 lo_pointer 字段中新智能大对象的指针。
如果新的智能大对象没有磁盘引用且已关闭,那么服务器将在事务结束时删除该新的智能大对象。因此,复制到新建的智能大对象之后,请将其打开或插入表中。
如果 lld_copy() 创建了新的智能大对象,它会将系统缺省值用作必需的存储参数,如 sbspace。如果要覆盖这些参数,可以使用服务器的大对象接口来创建智能大对象,并在 MI_LO_SPEC 结构中指定所需的参数。然后可以调用 lld_copy() 并将 lld_locator 行的 lo_pointer 字段设置为指向新的智能大对象。
同样,如果针对新的大对象类型向 Large Object Locator 中添加协议,这些对象可能需要某些 Large Object Locator 已经为其提供预定义缺省值的创建属性或参数。 对于智能大对象,可以使用 lld_copy() 创建该对象并接受缺省值,也可以使用特定于新协议的创建例程并提供自己的属性和参数。创建对象之后,可以调用 lld_copy() 并为其传递指向新对象的 lld_locator 行。
如果成功,此函数将返回指向 lld_locator 行的指针,用于指定大对象副本的位置。如果目标对象已存在,lld_copy() 将返回指向您在 dest 参数中传递的原样 lld_locator 行的指针。如果目标对象不存在,lld_copy() 将返回指向其所创建的新对象的 lld_locator 行的指针。
如果失败,此函数将返回 NULL。