Thread: another ODBC/Access question..

another ODBC/Access question..

From
Tim Bosinius
Date:
When connecting Access97 to a postgreSQL datasource with ODBC
the pg_attribute.attnuotnull is not queried and therefore not set
in Access.

this is in the psqlodbc logfile:
conn=154147544, query='BEGIN'
conn=154147544, query='declare SQL_CUR154411144 cursor for select
u.usename, c.relname, a.attname, a.atttypid,t.typname, a.attnum, a.attlen,
a.atttypmod from pg_user u, pg_class c, pg_attribute a, pg_type t where
int4out(u.usesysid) = int4out(c.relowner) and .oid= a.attrelid and
a.atttypid = t.oid and (a.attnum > 0) and c.relname like 'test' order by
attnum'
conn=154147544, query='fetch 100 in SQL_CUR154411144'
   [ fetched 2 rows ]
conn=154147544, query='close SQL_CUR154411144'
conn=154147544, query='END'



Is this a bug in the ODBC driver or an Access problem?


Tim Bosinius


Re: [INTERFACES] another ODBC/Access question..

From
Byron Nikolaidis
Date:

Tim Bosinius wrote:

> When connecting Access97 to a postgreSQL datasource with ODBC
> the pg_attribute.attnuotnull is not queried and therefore not set
> in Access.
>

Currently, the driver just returns "everything is nullable".   It used to vary
based on datatypes, but since most datatypes can handle nulls, that wasn't
very good.

I think it would make a good addition to the driver to handle nulls based on
the column attribute as you suggest.  For Access, which uses SQLColumns to
determine this fact, this will work great.  However, other applications that
use SQLDescribeCol or SQLColAttributes will still get only the datatype
nullability since there really is no easy way to get this kind of information
given only a result set from the backend.

I will add this in the next release.

Byron