#SQLBindParameter
# 功能简介
为 SQL 语句中的参数分配存储。
# 函数声明
SQLRETURN SQLBindParameter(
SQLHSTMT StatementHandle,
SQLUSMALLINT ParameterNumber,
SQLSMALLINT InputOutputType,
SQLSMALLINT ValueType,
SQLSMALLINT ParameterType,
SQLULEN ColumnSize,
SQLSMALLINT DecimalDigits,
SQLPOINTER ParameterValuePtr,
SQLLEN BufferLength,
SQLLEN * StrLen_or_IndPtr);
# 参数说明
| 参数名 | 说明 |
|---|---|
| StatementHandle (IN) | 语句句柄。 |
| ParameterNumber (IN) | 参数编号,按递增参数顺序排序,从 1 开始。 |
| InputOutputType (IN) | 参数的类型。 |
| ValueType (IN) | 参数的 C 数据类型。 |
| ParameterType (IN) | 参数的 SQL 数据类型。 |
| ColumnSize (IN) | 相应参数标记的列或表达式的大小。 |
| DecimalDigits (IN) | 相应参数标记的列或表达式的十进制数字。 |
| ParameterValuePtr (IN) | 指向参数数据的缓冲区的指针。 |
| BufferLength (IN/OUT) | ParameterValuePtr 缓冲区的长度(以字节为单位)。 |
| StrLen_or_IndPtr (IN) | 指向参数长度缓冲区的指针。 |
InputOutputType参数的支持情况:
| InputOutputType | 说明 | 支持情况 |
|---|---|---|
| SQL_PARAM_INPUT | 支持 | |
| SQL_PARAM_OUTPUT | 支持 | |
| SQL_PARAM_INPUT_OUTPUT | 不支持 | |
| SQL_PARAM_INPUT_OUTPUT_STREAM | 不支持 | |
| SQL_PARAM_OUTPUT_STREAM | 不支持 |
StrLen_or_IndPtr参数的支持情况:
| StrLen_or_IndPtr | 说明 | 支持情况 |
|---|---|---|
| 存储在 *ParameterValuePtr 中的参数值的长度。 | 除字符或二进制 C 数据外,将忽略此项。 | 支持 |
| SQL_NTS | 参数值是 null 终止的字符串。 | 支持 |
| SQL_NULL_DATA | 参数值为 NULL。 | 支持 |
| SQL_DEFAULT_PARAM | 不支持 | |
| SQL_LEN_DATA_AT_EXEC | 参数的数据将使用 SQLPutData 发送。 | 支持 |
| SQL_DATA_AT_EXEC | 参数的数据将使用 SQLPutData 发送。 | 支持 |
Note: 预编译SQL中如果使用
:name形式占位符且多处同名,按位置绑定值时需要绑定多次。通常同名占位符位置绑定的是相同值。

