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