ABC Browse Error w/ SQL Timestamp in Primary Key


#1

Have a PostgreSQL child table with a primary key like:

ParentID
CreateTimestamp

In the DCT, the timestamp column is defined in the typical way w/ READONLY:

CreateTimestampSTR  STRING(8)
CreateTimestampGRP OVER(CreateTimestampSTR)
  CreateDate                DATE
  CreateTime                TIME

If this table is used as the primary file in an ABC Browse, a changed by another station or may be deleted error is given whenever a record is selected for update. The error occurs in the UpdateViewRecord method at WATCH/REGET.

My assumption is that there are problems in the ODBC driver with using a timestamp in the primary key such that POSTION(View) fails to uniquely identify a View record.

Might anyone have knowledge of or experience to the contrary?


#2

How is the timestamp value created? I’m sort of guessing it’s but a backend default or trigger?
Clarion time can only handle .01 sec resolution. the timestamp goes to micro second.
The difference is what causes the trouble.
You need to either come up with a different primary key or limit the timestamp to 100th of a second.


#3

Hmmmm. Had not thought about the time resolution difference. These backend timestamp values exist in almost all of the tables. They definitely work for alternative sorts on an ABC browse and have never been associated with any other problems until being used in a primary key on this new table. Easiest solution no doubt is to change the PK to a sequence and be done with it. Nevertheless, I am curious to test your hypothesis and learn a bit more.

Thank you very much.