/**
  * order orderdir, offset, limit
  */
 public function getResultByDelivery($delivery, $options = array())
 {
     $returnValue = array();
     $sql = 'SELECT * FROM ' . self::RESULTS_TABLENAME;
     $params = array();
     if (count($delivery) > 0) {
         $sql .= ' WHERE ';
         $inQuery = implode(',', array_fill(0, count($delivery), '?'));
         $sql .= self::DELIVERY_COLUMN . ' IN (' . $inQuery . ')';
         $params = array_merge($params, $delivery);
     }
     if (isset($options['order'])) {
         $sql .= ' ORDER BY ?';
         $params[] = $options['order'];
         if (isset($options['oderdir']) && (strtolower($options['orderdir']) === 'asc' || strtolower($options['orderdir']) === 'desc')) {
             $sql .= ' ?';
             $params[] = $options['orderdir'];
         }
     }
     if (isset($options['offset']) || isset($options['limit'])) {
         $offset = isset($options['offset']) ? $options['offset'] : 0;
         $limit = isset($options['limit']) ? $options['limit'] : 1000;
         $this->persistence->getPlatForm()->limitStatement($sql, $limit, $offset);
     }
     $results = $this->persistence->query($sql, $params);
     foreach ($results as $value) {
         $returnValue[] = array("deliveryResultIdentifier" => $value[self::RESULTS_TABLE_ID], "testTakerIdentifier" => $value[self::TEST_TAKER_COLUMN], "deliveryIdentifier" => $value[self::DELIVERY_COLUMN]);
     }
     return $returnValue;
 }
예제 #2
0
 /**
  * 
  * @author "Lionel Lecaque, <*****@*****.**>"
  * @param string $id
  * @throws common_Exception
  * @return boolean
  */
 public function exists($id)
 {
     try {
         $statement = 'SELECT kv_value FROM kv_store WHERE kv_id = ?';
         $statement = $this->sqlPeristence->getPlatForm()->limitStatement($statement, 1);
         $sessionValue = $this->sqlPeristence->query($statement, array($id));
         return $sessionValue->fetch() !== false;
     } catch (Exception $e) {
         throw new common_Exception("Unable to read value from key value storage");
     }
 }
예제 #3
0
 /**
  * Loads the next n results, starting with $offset
  * 
  * @param int $offset
  */
 protected function load($offset)
 {
     $query = $this->persistence->getPlatForm()->limitStatement($this->query, self::CACHE_SIZE, $offset);
     $result = $this->persistence->query($query, $this->params);
     $this->cache = array();
     $pos = $offset;
     while ($statement = $result->fetch()) {
         $this->cache[$pos++] = $statement;
     }
     $this->currentResult = $offset;
 }
예제 #4
0
 /**
  * 
  * @param Revision $revision
  * @param array $data
  * @return boolean
  */
 protected function saveData(RdsRevision $revision, $data)
 {
     $columns = array(self::DATA_REVISION, self::DATA_SUBJECT, self::DATA_PREDICATE, self::DATA_OBJECT, self::DATA_LANGUAGE);
     $multipleInsertQueryHelper = $this->persistence->getPlatForm()->getMultipleInsertsSqlQueryHelper();
     $query = $multipleInsertQueryHelper->getFirstStaticPart(self::DATA_TABLE_NAME, $columns);
     foreach ($data as $triple) {
         $query .= $multipleInsertQueryHelper->getValuePart(self::DATA_TABLE_NAME, $columns, array(self::DATA_REVISION => $this->persistence->quote($revision->getId()), self::DATA_SUBJECT => $this->persistence->quote($triple->subject), self::DATA_PREDICATE => $this->persistence->quote($triple->predicate), self::DATA_OBJECT => $this->persistence->quote($triple->object), self::DATA_LANGUAGE => $this->persistence->quote($triple->lg)));
     }
     $query = substr($query, 0, strlen($query) - 1);
     $query .= $multipleInsertQueryHelper->getEndStaticPart();
     $success = $this->persistence->exec($query);
     return $success;
 }
 public function quoteIdentifier($parameter)
 {
     return $this->persistence->getPlatForm()->quoteIdentifier($parameter);
 }