So, the problem is with the timestamp parameter. We bind the timestamp argument with:
SQLBindParameter(…, SQL_C_TIMESTAMP, SQL_TIMESTAMP, …). This used to work with the older revs. But not for this user. I was able to get PostgreSQL to accept
the function call by changing the stored procedure to explicitly declare the parameter as
timestamp with time zone. But timestamps (not stating with or without time zone) are used all over the place in our application, and according to PostgreSQL
The SQL standard requires that writing just timestamp be equivalent to timestamp without time zone, and PostgreSQL honors that behavior.
So, to be consistent, we’d have to change all our declarations to say
with time zone. That’s a pain. Plus, it seems like PGSQL actually recommends storing timestamps without time zone (i.e., absolute time)
Did the definition of SQL_TIMESTAMP somehow change such that it now implies
timestamp withtime zone? Or did some marshaling that used to take place doesn’t work anymore?
Also, is there a way for SQLBindParameter() to explicitly bind the argument as
SQL_TIMESTAMP and force it to be without time zone?