Re: 'No Current Record' using Access linked to Postgres via ODBC - A possible resolution

From: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
To: <laurie(dot)burrow(at)powerconv(dot)alstom(dot)com>
Cc: <pgsql-odbc(at)postgresql(dot)org>
Subject: Re: 'No Current Record' using Access linked to Postgres via ODBC - A possible resolution
Date: 2005-01-06 13:19:24
Message-ID: 6EE64EF3AB31D5448D0007DD34EEB3412A7594@Herge.rcsinc.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc


You can also flip the 'row versioning' switch in the drver...this causes it to generate a where clause based on the key only. This was discussed in depth a couple of months back on this list.

Merlin

-----Original Message-----
From: pgsql-odbc-owner(at)postgresql(dot)org [mailto:pgsql-odbc-owner(at)postgresql(dot)org] On Behalf Of laurie(dot)burrow(at)powerconv(dot)alstom(dot)com
Sent: Thursday, January 06, 2005 4:51 AM
To: pgsql-odbc(at)postgresql(dot)org
Subject: [ODBC] 'No Current Record' using Access linked to Postgres via ODBC - A possible resolution

Problem
-------------
Using MS Access to read/write a Postgres database using ODBC get the error message 'No Current Record' when making a simple update to a table record through the Access default form interface. The table has a integer primary key and other fields including a timestamp field. The problem is experienced only on some rows.There is no obvious difference between rows that work and rows that don't.

Although this problem is similar to that mentioned in several earlier postings, I found no definitive answer through Google. I have posted the resolution here in case it helps others with a similar predicament.

Resolution
----------------
When Access issues the update to Postgres though ODBC it creates an update SQL query that uses all fields in the row as the 'where' clause. This includes the timestamp field. However, in the roundtrip from Postgres to Access on row read and then back to Postgres on row update the timestamp field loses resolution. As a result the 'where' clause does not match the corresponding Postgres record on the timestamp field. The update fails and Access reports 'No Current Record'.  

The solution is to reduce the resolution of the timestamp stored in Postgres e.g. using a trigger and the date_trunc() function.

Laurie Burrow

:.________________
CONFIDENTIALITY : This  e-mail  and  any attachments are confidential and may be privileged. If  you are not a named recipient, please notify the sender immediately and do not disclose the contents to another person, use it for any purpose or store or copy the information in any medium.

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Cristian Custodio 2005-01-06 22:43:02 Geting information about
Previous Message laurie.burrow 2005-01-06 09:51:03 'No Current Record' using Access linked to Postgres via ODBC - A possible resolution