*W* Record ... is not updatable message

Joe Boyle atla38@dsl.pipex.com
Thu, 5 May 2005 12:05:52 +0100


long ago, Ottawa informed me that PowerHouse requires a unique index for
databases SQLserver, SQLanywhere and DB2, but typically only for updates. 

The technical reasons they gave are below.

PowerHouse does not require a unique index for read access or write access
to a database, but only for updating existing records. 

The requirement for having a unique index to update data is due to the way
PowerHouse updates records; namely, the use of checksums before/during a
put.

When the record is first read a checksum is calculated on the data and
stored with that record buffer. When an update is initiated, PowerHouse
re-reads that record and calculates a second checksum. If the checksum is
different from the checksum of the initial read PowerHouse issues an error
stating that the record has changed since you found it. If the checksums are
the same then the updates process continues.
 
This is the particularly relevant bit, In order to re-read the record
PowerHouse must know that it is re-reading the same record as the initial
read. If the record did not have a unique index PowerHouse would not know if
it is the same record was being compared. 

For some database such as Oracle a unique index is not required. This is
because Oracle has a dbkey. A dbkey is guaranteed to be unique for all
records. So when we reread the record from Oracle we are using the dbkey.

Regards, Joe.


-----Original Message-----
From: powerh-l-admin@lists.sowder.com
[mailto:powerh-l-admin@lists.sowder.com] On Behalf Of Robert Edis
Sent: 05 May 2005 00:31
To: PowerHouse List
Subject: *W* Record ... is not updatable message

G'day all

I am a bit rusty on PH these days (too much time spent
on the *dark* side) and I am humbly asking for your
assistance. :)

Environment:  WinNT, SQL Server, PH 8.41

Concern:  When trying to create a screen in QDesign I
get the following warning:

Q D E S I G N   (PowerHouse  8.41.D)
Copyright 2004 COGNOS INCORPORATED
Licensed PH8-NT-DEVELOPMENT for customer: XXXXXXXXXX

> set dict f:\cognos\catalogs\manchk.pdc
> screen test html
> file fin_Manual_Checks IN DB_CHK
*W* Record FIN_MANUAL_CHECKS is not updatable.

The database syntax in the PDC uses a SQL Server login
that has full read & write rights in the database
DB_CHK.

> sho rec fin_manual_checks in db_chk
05/04/2005                        ManChk              
           Page    1
                         R E C O R D   R E P O R T
              For DICTIONARY: 
f:\cognos\catalogs\manchk.pdc
    Record:             FIN_MANUAL_CHECKS
    of Database:        DB_CHK
    Organization:       RELATIONAL
    Null Values Allowed:Yes
    Type:               ODBC
    Hold Cursor:        Unspecified
    Open:              
DSN=DB_Chk;UID=##;PWD=@@ASYNC=0@0/0
    Record Size:        1475 Bytes

-- Record Contents --
    Item                                 Type         
  Size  Occ  Offset
...

Why is this record not updatable?  Has it anything to
do with the ASYNC=0 attribute?  If so where do I
change this?

Blue
-- 
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Mailing list: powerh-l@lists.sowder.com
Subscribe: "subscribe" in message body to powerh-l-request@lists.sowder.com
Unsubscribe: "unsubscribe <password>" in message body to
powerh-l-request@lists.sowder.com
http://lists.sowder.com/mailman/listinfo/powerh-l
This list is closed, thus to post to the list you must be a subscriber.