ifx_lo_copy_to_file() 函数将智能大对象的内容复制至操作系统文件内。
语法
mint ifx_lo_copy_to_file(LO_ptr, fname, flags, result)
ifx_lo_t *LO_ptr;
char *fname;
mint flags;
char *result;
LO_ptr
指向您提供来标识要复制的智能大对象的 LO-pointer 结构的指针。
fname
要保存该数据的目标文件的完全路径名称。
flags
指定 fname 文件的位置的整数。
result
指向包含 ifx_lo_copy_to_file() 生成的文件名称的缓冲区的指针。
用法
ifx_lo_copy_to_file() 函数可在服务器或客户机计算机上创建目标文件。flags 参数的
标志值指示要复制的文件的位置。有效值包括下列 locator.h 头文件定义的常量。
File-location 常量用途LO_CLIENT_FILE
fname 文件在客户机计算机上。
LO_SERVER_FILE
fname 文件在服务器计算机上。
在缺省情况下,ifx_lo_copy_to_file() 函数生成的文件名称形如:
fname.hex_id
在此格式中,
fname 是您指定作为 ifx_lo_copy_to_file() 的参数的文件名称,
且 hex_id
为唯一的十六进制 smart-large-object 标识符。
smart-large-object 标识符的位数最大值为 17;
然而,大多数智能大对象的标识符位数较少。
例如,假定您指定 pathname 值为 '/tmp/resume'。
如果该 CLOB 列有标识符 203b2,则 ifx_lo_copy_to_file() 函数创建文件:
/tmp/resume.203b2。
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 774 -
要更改此缺省的文件名称,您可在 fname 的文件名称部分指定下列通配符:
文件名称中的一个或多个相邻的问号(?)字符可生成唯一的文件名称。
ifx_lo_copy_to_file() 函数以来自 BLOB 或 CLOB 列的标识符的十六进制数字替代
每一问号。例如,假定您指定 pathname 值为 '/tmp/resume??.txt'。
ifx_lo_copy_to_file() 函数将两位十六进制标识符放入该名称内。如果该 CLOB 列有
标识符 203b2,则 ifx_lo_copy_to_file() 函数会创建文件 /tmp/resumeb2.txt。
如果您指定多于 17 个问号,则 ifx_lo_copy_to_file() 函数忽略它们。
在文件名称的末尾的感叹号(!)指示该文件名称不需要为唯一的。
例如,假定您指定路径名称值为 '/tmp/resume.txt!'。
ifx_lo_copy_to_file() 函数在该文件名称中未使用 smart-large-object 标识符,
因此,
它
生成下列文件:ifx_lo_copy_to_file()
感叹号覆盖文件名称规范中的问号。
提示: 这些通配符在 ifx_lo_filename() 函数的 fname 参数中也有效。
您的应用程序必须确保有充足的空间来保存生成的文件。
返回代码
0
函数成功。
<0
函数不成功,且返回值指示失败的原因。