Thread: Passing numeric Bind variables to ODBC driver convers to "Double precision"

 Using the lastest of ODBC ANSI driver for windows 32bit ver 9.00.03  Calling from MS VFP 9.0

 public nvar as interger
 nvar=1
 running the following sql:
 "( select function_pkg(?nvar) "

 The bind variable nvar will show in postgres as "Double Precision"  format instead of integer(or numeric)

 Is there a setting on the ODBC driver for incoming vairables?


Hi Barry,

(2012/04/09 23:35), Barry Bell wrote:
>
>   Using the lastest of ODBC ANSI driver for windows 32bit ver 9.00.03  Calling from MS VFP 9.0
>
>   public nvar as interger
>   nvar=1
>   running the following sql:
>   "( select function_pkg(?nvar) "
>
>   The bind variable nvar will show in postgres as "Double Precision"  format instead of integer(or numeric)
>
>   Is there a setting on the ODBC driver for incoming vairables?

Are you turning on the Server side prepare option?

regards,
Hiroshi Inoue



Thanks, "UseServerSidePrepare=1;  does appear to fix this. (working for both numeric and integer)

Next issue,
When calling a function in postgres, the postgres is returning a blank string ('').
This is showing as a blank longvarchar(memo,clob) instead of a varchar.

Any ideas?
 
Thanks
Barry Bell, IT Department 
Office: 954-429-3771 x267 Fax: 954-281-1464 email Barry_Bell@harte-hanks.com


-----Original Message-----
From: Hiroshi Inoue [mailto:inoue@tpf.co.jp] 
Sent: Thursday, April 12, 2012 9:24 AM
To: Barry Bell
Cc: pgsql-odbc@postgresql.org
Subject: Re: [ODBC] Passing numeric Bind variables to ODBC driver convers to "Double precision"

Hi Barry,

(2012/04/09 23:35), Barry Bell wrote:
>
>   Using the lastest of ODBC ANSI driver for windows 32bit ver 9.00.03  Calling from MS VFP 9.0
>
>   public nvar as interger
>   nvar=1
>   running the following sql:
>   "( select function_pkg(?nvar) "
>
>   The bind variable nvar will show in postgres as "Double Precision"  format instead of integer(or numeric)
>
>   Is there a setting on the ODBC driver for incoming vairables?

Are you turning on the Server side prepare option?

regards,
Hiroshi Inoue




(2012/04/13 2:12), Barry Bell wrote:
> Thanks, "UseServerSidePrepare=1;  does appear to fix this. (working for both numeric and integer)
>
> Next issue,
> When calling a function in postgres, the postgres is returning a blank string ('').
> This is showing as a blank longvarchar(memo,clob) instead of a varchar.
>
> Any ideas?

Please try to turn off the Text as LongVarChar option.

regards,
Hiroshi Inoue

Note: The UseServerSidePrepare=1; only works with the PostgresSQL 9.01 driver (It will not work with the 9.00 driver)

Setting TextAsLongVarchar=0 has no effect on the blanks("") comes back as longvarchar.

UnknownsAsLongVarchar=0 or UnknownsAsLongVarchar=1 has no effect on this either.


Thanks
Barry Bell, IT Department 
Office: 954-429-3771 x267 Fax: 954-281-1464 email Barry_Bell@harte-hanks.com


-----Original Message-----
From: Hiroshi Inoue [mailto:inoue@tpf.co.jp] 
Sent: Friday, April 13, 2012 9:27 AM
To: Barry Bell
Cc: pgsql-odbc@postgresql.org
Subject: Re: [ODBC] Passing numeric Bind variables to ODBC driver convers to "Double precision"

(2012/04/13 2:12), Barry Bell wrote:
> Thanks, "UseServerSidePrepare=1;  does appear to fix this. (working for both numeric and integer)
>
> Next issue,
> When calling a function in postgres, the postgres is returning a blank string ('').
> This is showing as a blank longvarchar(memo,clob) instead of a varchar.
>
> Any ideas?

Please try to turn off the Text as LongVarChar option.

regards,
Hiroshi Inoue


(2012/04/14 3:00), Barry Bell wrote:
> Note: The UseServerSidePrepare=1; only works with the PostgresSQL 9.01 driver (It will not work with the 9.00 driver)
>
> Setting TextAsLongVarchar=0 has no effect on the blanks("") comes back as longvarchar.
>
> UnknownsAsLongVarchar=0 or UnknownsAsLongVarchar=1 has no effect on this either.

Could you send me the Mylog output?
You can take the log by adding Debug=1; in your connection string.

regards,
Hiroshi Inoue