Send proper datatypes to the server when binding parameters.
We used to always send 0 as the parameter type, which means that the server
should deduce the datatype from the context. That usually works well, but
we can do better. Sometimes there is ambiguity, like in "SELECT '555' > ?".
If the parameter is bound as a string, '6' would return true, but if it's
bound as an integer, it returns false.
When the application calls SQLBindParameter, it specifies the datatype, so
we should make use of that.
Add a test case for the "SELECT '555' > ?" case.