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 <[EMAIL PROTECTED]> 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

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to