Jason,
>How have you done the population of the integer pk field? A stored value in a config table holds the value and is updated when a record is added?
I use a GetKey( "tablename" ) function, typically it looks up a value in a keys table, increments it, replaces is in the keys table and returns the value. You can rlock the row to keep multiple users from retrieving the same key.