Re: column "oid" does not exist

From: Matthew and Karen Brown <browns(at)usadatanet(dot)net>
To:
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: column "oid" does not exist
Date: 2004-02-18 19:23:42
Message-ID: 4033BBBE.2050402@usadatanet.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Thank you for clarifying this for me. I guess I will just have to dump
the tables and recreate them with OIDs.

Thanks again.

-- Matt

Shachar Shemesh wrote:

> Matthew and Karen Brown wrote:
>
>> I get the error message in the subject whenever I attempt to use an
>> application that supports ODBC to access a user table in my database.
>> When I create a table using "WITH OIDS", I have no problems viewing
>> the table with any application. But when I use "WITHOUT OIDS", the
>> only two applications that I have found that will work are MSQuery
>> and MSAccess. (I am trying to use Avery DesignPro and OpenOffice
>> without success.)
>>
> Yes, that makes sense.
>
>> The things that I have tried (beside pounding my head against a wall)
>> are just about all of the options in the configuration dialog and, of
>> course, different applications. My use of PostgreSQL here is
>> dependent upon my being able to get ODBC to work reliably. Why does
>> it even care about selecting the OID field? All of the notes I have
>> seen seem to indicate that its necessity is largely gone and
>> certainly not relevant for anything that I am doing.
>>
> PostgreSQL does not support updateable cursors. To work around this
> problem, the ODBC driver uses readonly cursors for its operations. In
> order for updates to still work, the ODBC driver adds the OID field to
> all of your queries, and then uses that field to perform the update on
> a seperate query.
>
>> Why would some apps be able to run a simple select query without
>> generating this error while others cannot? I assume that the
>> difference is in the way the ODBC calls are made by the client app.
>> If this is so, why does not the driver handle this circumstance more
>> elegantly?
>
>
> If you open your query as "static readonly", there is no need for the
> OID field, and the query is not changed before being sent to the
> database server. That must be the difference between them.
>
> As for why ODBC cannot do that himself, I don't know.
>
>>
>> In a possibly related issue, when I select from a view using these
>> same apps, I get the error "colum ctid does not exist". Is this the
>> same issue?
>>
> exactly the same issue, for exactly the same reason. A view doesn't
> have the ctid and oid fields, and so you cannot select in read-write
> mode from a view.
>
>> I would like to follow the suggestions related to not using OIDs, but
>> this one has me stumped.
>>
> Sorry. No easy way out that I can see.
>
>> Grateful for any help,
>>
>> -- Matt
>
>
>
>

Attachment Content-Type Size
browns.vcf text/x-vcard 304 bytes

In response to

Browse pgsql-odbc by date

  From Date Subject
Next Message Aaron Spike 2004-02-18 19:39:29 Re: Force commit in M$ Access?
Previous Message Matthew and Karen Brown 2004-02-18 19:04:02 Re: Force commit in M$ Access?