Example 2: (a) Throwing an exception; (b) adding another interface to the wrapper.

(a)

CAccountRecord myAccountRecord(Db::Instance()->GetRecordBelongingToKey(myAccountKey ) );

(b)

// An empty record object. This is just an empty "shell"--it won't pass its 
// own Validate() method so cannot be stored in the database, but it can be 
// used to receive another Record via its SwapNoThrow() method.
CAccountRecord  ReceiveRecord;

// If the key exists and if pReceiveRecord (2nd arg) is not 0 then the
// Record will be constructed and SwapNoThrow()'ed into the specified
// receiver and true returned. Any previous contents of the receiver are lost.
bool bSuccess = Db::Instance()->AttemptGetRecordBelongingToKey
  (Key, & ReceiveRecord);