I know I can do it explicitly, I need to do it implicitly.
I am having a problem with a Microsoft Access front-end , that uses -1
as true and 0 as false.
I have everything worked around all the places where I could find it by
using a cbool(), but this doesn't work with filters, which probably call
a "select where field =-1 or =0." automatically by access.
I get an ODBC error saying that "Operator does not exist: boolean=integer.
I would like to create the implicit conversion, so that it works both
without the cbool from now on, and that filters should work fine.
I have tried a number of different ODBC settings, and no matter what
setting there is always one problem or another that has to be overcome.
I can get it all to work if I put a Before Insert and Update trigger and
change the -1 to true, but I would have to do that for every boolean
field in my application. It would be a lot easier and make sense
system-wise to implicitly convert the integer to bool.
Andreas Kretschmer wrote:
Sim Zacks <sim@xxxxxxxxxxxxxx> schrieb:
How easy would it be to write a small type extension to have integer
automatically convert to bool?
For example, I want an implicit conversion that 0 is false and everything
else is true.
test=# \d foo;
Table "public.foo"
Column | Type | Modifiers
--------+---------+-----------
val | integer |
test=# select * from foo;
val
-----
0
1
2
3
(4 rows)
test=# select val::bool from foo;
val
-----
f
t
t
t
(4 rows)
Is this C programming or can you do it with a local procedural language?
You can use regular casts.
HTH, Andreas