I wrote a function that takes a boolean parameter and returns int2.

        -----Original Message-----
        From:   Valerio Santinelli [SMTP:[EMAIL PROTECTED]]
        Sent:   Wednesday, February 24, 1999 1:10 PM
        To:     Michael Davis
        Cc:     [EMAIL PROTECTED]
        Subject:        Re: [GENERAL] Checkboxes on MSAccess and PostgreSQL

        That's the same thing I did today to get rid of the boolean problem.
Now I've
        got another one ;)
        I want to use my data contained in the table filled with boolean
stuff and I'd
        like to convert all the booleans to int2. I know there's a way to do
that by
        doing something like:

        INSERT INTO mynewtable SELECT field1, field2, (booleanfield='t'),
field3,...
        FROM myoldtable;

        but "(booleanfield='t')" gives another boolean value. I think I
should typecast
        it into an int2 but I don't know how to do that since there isn't a
function
        liek a bool_to_int2.
        Any ideas ?

        Michael Davis wrote:

        > I defined my Access boolean fields as int2 in Postgres.  This, in
        > combination with removing the "Bools as Char" flag in the ODBC
driver
        > appears to work.  However, I have not been able to much testing.
        >
        >         -----Original Message-----
        >         From:   Valerio Santinelli [SMTP:[EMAIL PROTECTED]]
        >         Sent:   Wednesday, February 24, 1999 4:25 AM
        >         To:     [EMAIL PROTECTED]
        >         Cc:     [EMAIL PROTECTED];
        > [EMAIL PROTECTED]
        >         Subject:        Re: [GENERAL] Checkboxes on MSAccess and
PostgreSQL
        >
        >         Jose' Soares wrote:
        >
        >         > Valerio Santinelli wrote:
        >         > >
        >         > > First of all.. thanks to everybody for helping me out
witht the
        >         > > "sequence" stuff. :)
        >         > >
        >         > > I've got another questions for you dudes.  When using
a CheckBox
        > in a
        >         > > Form written in MSAccess that's related to a table in
a
        >         > > PostgreSQL database, if I simply turn its status from
ON to OFF
        > it works
        >         > > fine, while if i'm doing the opposite it won't work.
        >         > >
        >         > > I noticed that when exporting the table from MSAccess
to
        > PostgreSQL the
        >         > > "yes/no" fields all became char(1) and not boolean..
maybe this
        > could be
        >         > > the problem.
        >         > >
        >         > > I also noticed from the logs that when updating the
status from
        > ON to
        >         > > OFF the UPDATE goes out with something like
field_name='0'
        >         > > I'm not sure it should use the "'" since it's more
like a
        > numerical, no
        >         > > ?
        >         > >
        >         > > Thanks again,
        >         > >
        >         > > Valerio Santinelli
        >         > > [EMAIL PROTECTED]
        >         >
        >         > You have to uncheck "Bools as Char" on Advanced options
Driver on
        > ODBC
        >         > Data Source Administrator
        >         > and then you have to create an operator for bool=int4
like this:
        >         >
        >         > /* M$Access tratta il valore booleano come un intero
0=false o
        > -1=true
        >         >    mentre invece PostgreSQL lo tratta come una stringa:
        >         >    'true','t','1','y','yes','false','f','0','n','no'
        >         >    Questo script crea l'operatore = e implicitamente <>
per bool e
        > int4
        >         >    per compatibilita' con M$Access.
        >         > */
        >         > drop operator = (bool,int4);
        >         > drop function MsAccessBool(bool,int4);
        >         >
        >         > create function MsAccessBool(bool,int4)
        >         >   returns bool
        >         >   as ''
        >         >   language 'internal';
        >         >
        >         > create operator = (
        >         >         leftarg=bool,
        >         >         rightarg=int4,
        >         >         procedure=MsAccessBool,
        >         >         commutator='=',
        >         >         negator='<>',
        >         >         restrict=eqsel,
        >         >         join=eqjoinsel
        >         >         );
        >
        >         Some time ago I got this message and I tried to make
booleans work
        > with my
        >         database, but there's been no way to do that. First of
all, during
        > the
        >         "DROP MsAccessBool" my PostgreSQL database engine reports
that the
        > function
        >         can't be dropped because it's an internal (built-in).
        >         Second, it seems to replace it by creating the function (i
don't
        > know how it
        >         could if the function already exists..) but then again
when I'm
        > updating a
        >         record in a table with booleans it simply doesn't let me
do that.
        > I'm
        >         desperately seeking help now.. I don't really know how to
solve this
        > problem.
        >
        >         Thanks in advance
        >
        >         Valerio Santinelli
        >         [EMAIL PROTECTED]
        >

        --

        C'ya!

        Valerio Santinelli a.k.a. TANiS
        [[EMAIL PROTECTED]]+:+[http://www.mediacom.it/~tanis]

        

Reply via email to