SQLBindFileToParam - 将 LOB 文件引用绑定到 LOB 参数

SQLBindFileToParam() 用于将 SQL 语句中的参数标记与文件引用或文件引用数组相关联 (绑定)。 通过这种方式,在随后处理该语句时,可以将文件中的数据直接传输到 LOB 列中。

LOB 文件引用参数 (文件名,文件名长度,文件引用选项) 引用应用程序环境中的文件 (在客户机上)。 在调用 SQLExecute()SQLExecDirect()之前,应用程序必须确保此信息在延迟输入缓冲区中可用。 可以在 SQLExecute() 调用之间更改这些值。

语法

SQLRETURN SQLBindFileToParam (SQLHSTMT          StatementHandle,   
                              SQLSMALLINT       ParameterNumber,   
                              SQLSMALLINT       DataType,        
                              SQLCHAR           *FileName,
                              SQLSMALLINT       *FileNameLength,
                              SQLINTEGER        *FileOptions,
                              SQLSMALLINT       MaxFileNameLength,
                              SQLINTEGER        *IndicatorValue);

函数自变量

表 1. SQLBindFileToParam参数
数据类型 自变量 使用 描述
SQLHSTMT StatementHandle 输入 语句句柄。
SQLSMALLINT ParameterNumber 输入 参数标记号。 参数从左到右按顺序编号,从 1 开始。
SQLSMALLINT DataType 输入 列的 SQL 数据类型。 数据类型必须是下列其中一项:
  • SQL_BLOB
  • SQL_CLOB
  • SQL_DBCLOB
SQLCHAR * FileName 输入 (延迟) 在处理语句 (StatementHandle) 时,指向包含文件名或文件名数组的位置的指针。 这是文件的完整路径名或相对文件名。 如果提供了相对文件名,那么会将其附加到客户机进程的当前路径。

此参数不能为 NULL。

SQLSMALLINT * FileNameLength 输入 (延迟) 在使用 StatementHandle运行下一个 SQLExecute()SQLExecDirect() 函数时,指向包含文件名长度 (或长度数组) 的位置的指针。

如果此指针为 NULL ,那么假定长度为 SQL_NTS

文件名长度的最大值为 255。

SQLINTEGER * FileOptions 输入 (延迟) 指向包含要在读取文件时使用的文件选项 (或文件选项数组) 的位置的指针。 处理语句 (StatementHandle) 时,将访问该位置。 仅支持一个选项 (必须指定此选项):
SQL_FILE_READ
可以打开,读取和关闭的常规文件。 (打开文件时计算长度)

此指针不能为 NULL。

SQLSMALLINT MaxFileNameLength 输入 这指定 FileName 缓冲区的长度。 如果应用程序调用 SQLParamOptions() 为每个参数指定多个值,那么这是 FileName 数组中每个元素的长度。
SQLINTEGER * IndicatorValue 输入 (延迟) ,输出 (延迟) 指向包含指示符值 (或值数组) 的位置的指针,如果参数的数据值为空,那么会将该值设置为 SQL_NULL_DATA。 当数据值不为空时,必须将其设置为 0 (或者可以将指针设置为空)。

用法

对于处理语句时应直接从文件获取其值的每个参数标记,应用程序将调用 SQLBindFileToParam() 一次。 在处理语句之前,必须设置 FileName, FileNameLengthFileOptions 值。 处理该语句时,将从引用的文件中读取与 SQLBindFileToParam() 绑定的任何参数的数据,并将其传递到 数据源

LOB 参数标记可以与使用 SQLBindFileToParam()的输入文件关联 (绑定到) ,也可以与使用 SQLBindParameter()的存储缓冲区关联。 最近的绑定参数函数调用确定了有效的绑定类型。

返回码

  • SQL_SUCCESS
  • sql_success_with_info
  • SQL_ERROR
  • sql_invalid_handle

错误状态

表 2。 SQLBindFileToParam SQLSTATEs
SQLSTATE 描述 说明
58004 意外的系统故障 不可恢复的系统错误。
HY004 SQL 数据类型超出范围 DataType 指定的值不是此函数调用的有效 SQL 类型。
HY009 参数值无效 FileName, FileOptions, 或 FileNameLength 是一个空指针。
HY010 函数顺序错误 在数据处理 (SQLParamData()SQLPutData()) 操作中调用该函数。

在 BEGIN 复合和 END 复合 SQL 操作中调用该函数。

HY021 内部描述符无效 无法寻址或分配内部描述符,或者它包含无效的值。
HY090 无效的字符串或缓冲区长度 输入参数 MaxFileNameLength 指定的值小于 0。
HY093 参数编号无效 ParameterNumber 指定的值小于 1 或大于支持的最大参数数。
HYC00 驱动程序不支持 数据源 不支持大对象数据类型。

限制

当应用程序连接到不支持大对象数据类型的 DB2® 服务器时,此功能不可用。

引用