lld_create() 函数

此函数用于使用您指定的协议和位置创建新的大对象。

语法

API
MI_ROW* lld_create(conn, lob, error)
      MI_CONNECTION*               conn
      MI_ROW*                      lob;
      mi_integer*                  error;
ESQL/C
ifx_collection_t* lld_create (lob, error);
   EXEC SQL BEGIN DECLARE SECTION;
         PARAMETER ROW lob;
   EXEC SQL END DECLARE SECTION;
      int* error;
SQL
CREATE FUNCTION LLD_Create (lob LLD_Locator)
      RETURNS LLD_Locator;
conn
先前通过调用 mi_open()mi_server_connect() 函数建立的连接描述符。 此参数仅适用于 API 接口。在此函数的 ESQL/C 和 SQL 版本中,您必须已经连接到服务器。
lob
指向 lld_locator 行的指针,用于识别要创建的对象。
error
函数在其中返回错误代码的输出参数。此函数的 SQL 版本没有 error 参数。

用途

使用以下值将 lld_locator 行作为 lob 参数传递到 lld_create()

lo_protocol 字段中,指定要创建的大对象类型。

对于智能大对象以外的任何其他类型的大对象:
  • lo_pointer 字段指定 NULL
  • 指向新对象在 lo_location 字段中的位置。

lld_create() 函数将按照原样返回您传递的行。

如果要创建智能大对象,请为 lld_locator 行的 lo_pointerlo_location 字段指定 NULLlld_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

上下文

lld_delete() 函数

lld_open() 函数