Re: Problem in using PostgreSQL ODBC driver with VBA
От | Tsunakawa, Takayuki |
---|---|
Тема | Re: Problem in using PostgreSQL ODBC driver with VBA |
Дата | |
Msg-id | 0A3221C70F24FB45833433255569204D1F63C53D@G01JPEXMBYT05 обсуждение исходный текст |
Ответ на | Re: Problem in using PostgreSQL ODBC driver with VBA ("Fred Parkinson" <FredP@abag.ca.gov>) |
Ответы |
Re: Problem in using PostgreSQL ODBC driver with VBA
|
Список | pgsql-odbc |
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 as psql. 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
В списке pgsql-odbc по дате отправления: