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 |
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? |