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); 函数自变量
| 数据类型 | 自变量 | 使用 | 描述 |
|---|---|---|---|
| SQLHSTMT | StatementHandle | 输入 | 语句句柄。 |
| SQLSMALLINT | ParameterNumber | 输入 | 参数标记号。 参数从左到右按顺序编号,从 1 开始。 |
| SQLSMALLINT | DataType | 输入 | 列的 SQL 数据类型。 数据类型必须是下列其中一项:
|
| SQLCHAR * | FileName | 输入 (延迟) | 在处理语句 (StatementHandle) 时,指向包含文件名或文件名数组的位置的指针。 这是文件的完整路径名或相对文件名。 如果提供了相对文件名,那么会将其附加到客户机进程的当前路径。 此参数不能为 NULL。 |
| SQLSMALLINT * | FileNameLength | 输入 (延迟) | 在使用 StatementHandle运行下一个 SQLExecute() 或 SQLExecDirect() 函数时,指向包含文件名长度 (或长度数组) 的位置的指针。如果此指针为 NULL ,那么假定长度为 SQL_NTS 。 文件名长度的最大值为 255。 |
| SQLINTEGER * | FileOptions | 输入 (延迟) | 指向包含要在读取文件时使用的文件选项 (或文件选项数组) 的位置的指针。 处理语句 (StatementHandle) 时,将访问该位置。 仅支持一个选项 (必须指定此选项):
此指针不能为 NULL。 |
| SQLSMALLINT | MaxFileNameLength | 输入 | 这指定 FileName 缓冲区的长度。 如果应用程序调用 SQLParamOptions() 为每个参数指定多个值,那么这是 FileName 数组中每个元素的长度。 |
| SQLINTEGER * | IndicatorValue | 输入 (延迟) ,输出 (延迟) | 指向包含指示符值 (或值数组) 的位置的指针,如果参数的数据值为空,那么会将该值设置为 SQL_NULL_DATA。 当数据值不为空时,必须将其设置为 0 (或者可以将指针设置为空)。 |
用法
对于处理语句时应直接从文件获取其值的每个参数标记,应用程序将调用 SQLBindFileToParam() 一次。 在处理语句之前,必须设置 FileName, FileNameLength 和 FileOptions 值。 处理该语句时,将从引用的文件中读取与 SQLBindFileToParam() 绑定的任何参数的数据,并将其传递到 数据源。
LOB 参数标记可以与使用 SQLBindFileToParam()的输入文件关联 (绑定到) ,也可以与使用 SQLBindParameter()的存储缓冲区关联。 最近的绑定参数函数调用确定了有效的绑定类型。
返回码
- SQL_SUCCESS
- sql_success_with_info
- SQL_ERROR
- sql_invalid_handle
错误状态
| 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® 服务器时,此功能不可用。