Parameter Data Types
Even though each parameter specified with SQLBindParameter is defined using a SQL data type, the parameters in a SQL statement have no intrinsic data type. Therefore, parameter markers can be included in a SQL statement only if their data types can be inferred from another operand in the statement. For example, in an arithmetic expression such as ? + COLUMN1, the data type of the parameter can be inferred from the data type of the named column represented by COLUMN1. An application cannot use a parameter marker if the data type cannot be determined.
The following table describes how a data type is determined for several types of parameters, in accordance with SQL-92. For a more comprehensive specification on inferring the parameter type when other SQL clauses are used, see the SQL-92 specification.
Location of parameter | Assumed data type |
---|---|
One operand of a binary arithmetic or comparison operator | Same as the other operand |
The first operand in a BETWEEN clause | Same as the second operand |
The second or third operand in a BETWEEN clause | Same as the first operand |
An expression used with IN | Same as the first value or the result column of the subquery |
A value used with IN | Same as the expression or the first value if there is a parameter marker in the expression |
A pattern value used with LIKE | VARCHAR |
An update value used with UPDATE | Same as the update column |