public function retrieveRecord(Datastore_Record $oRecord, $fields, $view = 'default') { $oDef = $oRecord->getDefinition(); $oMap = $this->getStorageForModel($oDef->getModelName()); $oStmt = $this->oConnector->getStatement(); $oStmt->beRetrieveStatement($oDef, $oMap, $fields, $view); $oStmt->bindValues($fields); try { $aRecords = $oStmt->execute(); } catch (Exception $e) { throw new Datastore_E_RetrieveFailed($e->getMessage(), $e); } $oRecord->setFields(array_shift($aRecords)); $oRecord->resetNeedsSaving(); $oRecord->setDatastoreWhereStored($this); }