lld_from_client() 函数

此函数用于将客户机文件复制到大对象。

语法

API
MI_ROW* lld_from_client(conn, src, dest, error); 
      MI_CONNECTION*               conn, 
      mi_string*                   src, 
      MI_ROW*                      dest,
      mi_integer*                  error
ESQL/C
ifx_collection_t* lld_from_client (src, dest, error);
      char* src;
   EXEC SQL BEGIN DECLARE SECTION;
            PARAMETER ROW dest;
   EXEC SQL END DECLARE SECTION;
      int* error;
SQL
CREATE FUNCTION LLD_FromClient(src LVARCHAR, 
                                    dest LLD_Locator) 
      RETURNS LLD_Locator;
conn
先前通过调用 mi_open()mi_server_connect() 函数建立的连接描述符。 此参数仅适用于 API 接口。在此函数的 ESQL/C 和 SQL 版本中,您必须已经连接到服务器。
src
指向源路径名的指针。
dest
指向目标 lld_locator 行的指针。如果目标对象本身不存在,将创建该对象。
error
函数在其中返回错误代码的输出参数。此函数的 SQL 版本没有 error 参数。

用途

此函数用于复制现有大对象。

如果目标对象已存在,请将指针传递到其 lld_locator 行作为 dest 参数。

如果目标对象不存在,将使用以下值将 lld_locator 行作为 dest 参数传递到 lld_from_client()

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

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

lld_from_client() 函数将创建您指定的大对象类型,将源文件复制到该大对象,并按照原样返回您所传递的行。

如果要复制到智能大对象,请为将作为 dest 参数传递的 lld_locator 行中的 lo_pointerlo_location 字段指定 NULLlld_from_client() 函数将返回 lld_locator 行,且带有指向 lo_pointer 字段中新智能大对象的指针。

如果新的智能大对象没有磁盘引用且已关闭,那么服务器将在事务结束时删除该新的智能大对象。因此,复制到新建的智能大对象之后,请将其打开或插入表中。

如果 lld_from_client() 创建了新的智能大对象,它会将系统缺省值用作必需的存储参数,如 sbspace。如果要覆盖这些参数,可以使用服务器的大对象接口来创建智能大对象,并在 MI_LO_SPEC 结构中指定所需的参数。然后可以调用 lld_from_client() 并将 lld_locator 行的 lo_pointer 字段设置为指向新的智能大对象。

同样,如果针对新的大对象类型向 Large Object Locator 中添加协议,这些对象可能需要某些 Large Object Locator 已经为其提供预定义缺省值的创建属性或参数。 对于智能大对象,可以使用 lld_from_client() 创建该对象并接受缺省值,也可以使用特定于新协议的创建例程并提供自己的属性和参数。创建对象之后,可以调用 lld_from_client() 并为其传递指向新对象的 lld_locator 行。

返回码

如果成功,将返回指向 lld_locator 行的指针,用于指定大对象副本的位置。如果目标对象已存在,lld_from_client() 将返回指向您在 dest 参数中创建并传递的原样 lld_locator 行的指针。如果目标对象不存在,lld_from_client() 将返回指向其所创建的新对象的 lld_locator 行。

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

上下文

lld_create_client() 函数

lld_open_client() 函数