Re: Problem in using PostgreSQL ODBC driver with VBA - Mailing list pgsql-odbc

From Vincenzo Turturro
Subject Re: Problem in using PostgreSQL ODBC driver with VBA
Date
Msg-id efe15476-1cfc-ceb5-c31d-9469045204c4@regione.toscana.it
Whole thread Raw
In response to Re: Problem in using PostgreSQL ODBC driver with VBA  ("Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>)
List pgsql-odbc
Il 08/11/2016 01:58, Tsunakawa, Takayuki ha scritto:
> From: pgsql-odbc-owner@postgresql.org
>> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Fred Parkinson
>> One thing I now remember from when this issue first appeared is that there
>> was another possible solution.
>> When trying to use FALSE or TRUE in an Access query that uses a postgres
>> boolean, I would get the error:
>> ODBC call failed: ERROR: operator does not exist: boolean = integer;...
>>
>> Apparently you can write an operator and add it to the postgres server,
>> an operator that will perform the comparison between a boolean and an
>> integer.
>> The intern I was working with at the time tried once to write that operator,
>> but when his attempt failed at the first try, we went with the kludge because
>> we were in a hurry and didn't want to spend the time debugging his code.
>>
>> I am not sure but I think the operator was written in PHP. In any case,
>> that might be a fruitful line of inquery given that you can't rewrite a
>> major application to use the kludge I describe below.
> A dirty hack is to run the following UPDATE only once on the target database.  You can do this from any program such
aspsql. 
>
> UPDATE pg_cast
> SET castcontext = 'I'
>
> WHERE castsource = 'int'::regtype AND
>      casttarget = 'boolean'::regtype;
>
> This will make the type cast from integer to Boolean implicit, enabling the comparison like "WHERE 1 = true".
>
> But implicit casts might cause unexpected trouble.  If you find something wrong, revert the castcontext to 'e'.
>
> Regards
> Takayuki Tsunakawa

Arigato !

Thank you very much for your answer.
I tried your suggestion and it worked !

But, in order to have the issue solved, I had to slightly change the SQL
statement you provided:

SET castcontext = 'i' (lowercase)
instead of
SET castcontext = 'I' (uppercase)

Thank you again !

Kon'nichiwa (in Italy is late morning ...)

------------------------------------------------------------
Vincenzo Turturro

Regione Toscana
Direzione generale Governo del territorio
Sistema Informativo Territoriale ed Ambientale

Via di Novoli 26
50127 Firenze

Tel 055 43 83 855
------------------------------------------------------------



pgsql-odbc by date:

Previous
From: "Inoue, Hiroshi"
Date:
Subject: Re: Problem in using PostgreSQL ODBC driver with VBA
Next
From: Andreas
Date:
Subject: SSL with Access VBA