I have a problem with passing parameters to a PostgreSQL function
using the ODBC driver.
I have delcared a PostgreSQL function as:
function GENERATE_TIMESHEETS(timestamp,timestamp,smallint,smallint)
....
I have a .NET program that uses the following:
cmd.CommandText = "SELECT GENERATE_TIMESHEETS(?,?,?,?)";
cmd.Parameters.Add("DATE_FROM",OdbcType.DateTime,8);
cmd.Parameters.Add("DATE_TO",OdbcType.DateTime,8);
cmd.Parameters.Add("TIME_FROM",OdbcType.SmallInt,2);
cmd.Parameters.Add("TIME_TO",OdbcType.SmallInt,2);
I then assign the parameter values and execute the statement.
PostgreSQL returns an error stating
GENERATE_TIMESHEETS(timestamp,timestamp,int4,int4) cannot be found
It appears that the ODBC driver is not typecasting the smallint (int2)
parameters correctly for the function call.
Can anyone shed any light on this?
Thanks
Gary.