PostgreSQL) How to use Bind Variable with ODBC Driver V10?


I hope my email finds you well. 

I am developing query tool for PostgreSQL using ODBC Driver (recent release ODBC v10).

The product that I am developing uses the SQLDescribeParam() function before the query SQLExec() when using Bind Variable. 

SQLDescribeParam () function normally works on 'psqlodbc_09_06_0500-x86', when using Bind Variable. 

However, in 'psqlodbc_10_00_0000-x86' and later versions, error occurs and Bind Variable cannot be used. 

Normal queries that do not use the SQLDescribeParam () function work fine. 

For your reference, below is the example of the query that use Bind Variable: select * from pg_class where relname = $ 1;

Should I use Bind Variable from ODBC v10 instead of SQLDescribeParam () function? 

If possible please provide me with a detailed guide on how to use Bind Variable with ODBC Driver. 

Thank you in advance. 

Best Regards,




박 재 현 Jae Hyun Park

전임연구원 / (주)웨어밸리 기술연구소

(121-795) 서울시 마포구 월드컵북로 396 (상암동)

누리꿈스퀘어 비지니스타워 22층

Tel: 02-2132-5522


Mobile: 010-3836-9574

E-mail: <a href="mailto: ... at warevalley dot com"> ... at warevalley dot com</a>



Re: PostgreSQL) How to use Bind Variable with ODBC Driver V10?

By Clemens Ladisch at 02/13/2018 - 13:07

박재현[기술연구소] wrote:
The behaviour of the driver for this case is affected by the
configuration settings "Parse Statement" and "Server side prepare".
What are their values? Are they different in the old and new data
sources? Does it help if you change one or both of them?

In theory, the ODBC API allows only ? as parameter marker; please use
that. (The driver automatically changes ? to $N before sending the
statement to the server.)