ODBC 3.x supports named parameters in stored procedures. When you use a named parameter, you do not have to specify its ordinal position in the procedure definition, which was required in previous versions. Therefore, not only can you simply name parameters in an application, but you can also skip parameters with default values in binding.
If the data consumer wants to use named parameters, it needs to set pwszName in the DBPARAMBINDINFO structure to a name in ICommandWithParameters::SetParameterInfo. Otherwise, pwszName should be set to NULL.
Named and unnamed parameters should not be mixed. If they are, the result is undefined.