[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-general
Subject:    RE: [GENERAL] Checkboxes on MSAccess and PostgreSQL
From:       Michael Davis <michael.davis () prevuenet ! com>
Date:       1999-02-24 20:21:29
[Download RAW message or body]

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

	-----Original Message-----
	From:	Valerio Santinelli [SMTP:tanis@mediacom.it]
	Sent:	Wednesday, February 24, 1999 1:10 PM
	To:	Michael Davis
	Cc:	pgsql-general@postgreSQL.org
	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:tanis@mediacom.it]
	>         Sent:   Wednesday, February 24, 1999 4:25 AM
	>         To:     sferac@bo.nettuno.it
	>         Cc:     pgsql-interfaces@postgreSQL.org;
	> pgsql-general@postgreSQL.org
	>         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
	>         > > tanis@mediacom.it
	>         >
	>         > 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
	>         tanis@mediacom.it
	>

	--

	C'ya!

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

	

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic