Exemplo n.º 1
0
 public function testExecutePersist()
 {
     $fileIn = tempnam(sys_get_temp_dir(), 'PgOidIn');
     file_put_contents($fileIn, 'content');
     $lo = new PgLargeObject($fileIn);
     $this->assertTrue($lo->isNew());
     $this->assertTrue($lo->isChanged());
     $this->assertFalse($lo->isDeleted());
     $this->assertSame($lo->getFilePath(), $fileIn);
     $task = new Persist($this->entityManager->recordManager);
     $task->setObject($lo);
     $this->assertTrue($task->execute($this->db));
     $this->assertFalse($lo->isNew());
     $this->assertFalse($lo->isChanged());
     $this->assertFalse($lo->isDeleted());
     $this->assertNull($lo->getFilePath());
     // the task has been inserted correctly
     $this->assertTrue(is_numeric($lo->getOid()));
     $this->db->query(new PgQuery('BEGIN'));
     $fileOut = tempnam(sys_get_temp_dir(), 'PgOidOut');
     pg_lo_export($this->db->resource->get(), $lo->getOid(), $fileOut);
     $this->db->query(new PgQuery('COMMIT'));
     $this->assertFileEquals($fileIn, $fileOut);
     pg_lo_unlink($this->db->resource->get(), $lo->getOid());
 }
Exemplo n.º 2
0
function DB_lo_unlink($c, $id)
{
    if (strcmp(phpversion(), '4.2.0') < 0) {
        return pg_lounlink($id, $c);
    } else {
        return pg_lo_unlink($c, $id);
    }
}
Exemplo n.º 3
0
 public function deleteblob($oid)
 {
     $this->query = pg_query($this->dbhandle, "begin");
     $blob = pg_lo_unlink($this->dbhandle, $oid);
     pg_query($this->dbhandle, "commit");
     return $blob;
     //TODO: kontola, ali je bil query ok izveden!
 }
 /**
  * Exclui um objeto oid do Banco de dados
  * @param integer $iOid
  *
  * Caso de Uso: Ao excluir um registro de uma tabela e eo campo for do tipo oid,
  * Deve-se excluir o objeto do banco utilizando este método
  */
 public static function exclusao($iOid)
 {
     $lTransacaoInterna = false;
     global $conn;
     if (!db_utils::inTransaction()) {
         throw new Exception("Sem transação Ativa.");
     }
     return pg_lo_unlink($conn, $iOid);
 }
Exemplo n.º 5
0
 /**
  * delete an OID
  *
  * @param integer    $OID
  * @return mixed MDB2_OK on success or MDB2 Error Object on failure
  * @access public
  */
 function deleteOID($OID)
 {
     $db =& $this->getDBInstance();
     if (PEAR::isError($db)) {
         return $db;
     }
     $connection = $db->getConnection();
     if (PEAR::isError($connection)) {
         return $connection;
     }
     if (!@pg_lo_unlink($connection, $OID)) {
         return $db->raiseError(null, null, null, 'Unable to unlink OID: ' . $OID, __FUNCTION__);
     }
     return MDB2_OK;
 }
Exemplo n.º 6
0
 public function execute(Pg $pg, $simulate = false)
 {
     if ($this->object->isNew()) {
         return true;
     }
     // IMPORTANT: pg_lo fn's don't work outside a transaction
     $pg->query(new Query('BEGIN'));
     if (!($response = pg_lo_unlink($pg->resource->get(), $this->object->getOid()))) {
         throw new QueryException("Unable to delete PgLargeObject {$this->object->getOid()}");
     }
     // IMPORTANT: pg_lo_import/export DO NOT WORK without a transaction!
     $pg->query(new Query('COMMIT'));
     $this->object->markDeleted();
     return true;
 }
Exemplo n.º 7
0
 public function pgsqlLOBUnlink($oid)
 {
     return pg_lo_unlink($this->link, $oid);
 }
Exemplo n.º 8
0
 public function loUnlink($oid)
 {
     assert('is_string($pathname)');
     assert('is_int($oid)');
     return pg_lo_unlink($this->_pg, $oid);
 }
Exemplo n.º 9
0
 function large_object_delete($oid)
 {
     trigger_before('large_object_delete', $this, $this);
     $return = false;
     #$result = pg_query($this->conn,"SELECT $field FROM $table WHERE $pkfield = '$pkvalue'");
     #if (!$result) { trigger_error("Error in select file OID", E_USER_ERROR ); }
     #$oid = pg_result($result,0,$field);
     #if (!$oid) { trigger_error("Error in file OID result", E_USER_ERROR ); }
     $result = @pg_query($this->conn, "BEGIN");
     if (!$result) {
         trigger_error("error starting l_o_d transaction: " . @pg_last_error($this->conn), E_USER_ERROR);
     }
     $result = @pg_lo_unlink($this->conn, $oid);
     if (!$result) {
         trigger_error("error in l_o_unlink: " . @pg_last_error($this->conn), E_USER_ERROR);
     }
     $result = @pg_query($this->conn, "COMMIT");
     if (!$result) {
         trigger_error("error committing l_o_d transaction: " . @pg_last_error($this->conn), E_USER_ERROR);
     } else {
         $return = true;
     }
     return $return;
 }
Exemplo n.º 10
0
 $req = $_POST['r'.$rn];
 if( $req == 'connect' ) {
   dump( 0 );
   dump( 0 );
   dump( 0 );
 } elseif( substr($req,0,11) == 'blob_create' ) {
   list($oid) = sscanf( $req, 'blob_create %u' );
   pg_free_result( pg_query( $commit ? 'COMMIT' : 'ROLLBACK' ) );
   pg_free_result( pg_query( 'BEGIN' ) );
   $oid = pg_lo_create() or pgerr('lo_create failed');
   pg_free_result( pg_query( 'COMMIT' ) );
   pg_free_result( pg_query( 'BEGIN' ) );
   dump($oid);
 } elseif( substr($req,0,11) == 'blob_delete' ) {
   list($oid) = sscanf( $req, 'blob_delete %u' );
   $oid = pg_lo_unlink($oid) or pgerr('lo_unlink failed');
 } elseif( substr($req,0,10) == 'blob_write' ) {
   list($oid) = sscanf( $req, 'blob_write %s ' );
   $bin = substr($req,12+strlen($oid));
   $obj = pg_lo_open($oid,'w') or pgerr( 'lo_open failed' );
   $res = pg_lo_write($obj,$bin) or pgerr( 'lo_write failed' );
   pg_lo_close($obj);
   dump($res);
 } elseif( substr($req,0,9) == 'blob_read' ) {
   list($oid) = sscanf( $req, 'blob_read %u' );
   $obj = pg_lo_open($oid,'r') or pgerr( 'lo_open failed' );
   pg_lo_seek($obj,0,PGSQL_SEEK_END);
   $len = pg_lo_tell($obj);
   pg_lo_seek($obj,0,PGSQL_SEEK_SET);
   $res = pg_lo_read($obj,$len) or pgerr( 'lo_read failed' );
   pg_lo_close($obj);
Exemplo n.º 11
0
 function Unlink()
 {
     if (version_compare(phpversion(), "4.2.0", "ge") > 0) {
         pg_lo_unlink($this->dbconnect, $this->oid);
     }
 }
Exemplo n.º 12
0
 function lo_unlink($p_oid)
 {
     return pg_lo_unlink($this->db, $p_oid);
 }
Exemplo n.º 13
0
if (!$oid) {
    echo "pg_lo_import() error\n";
}
if ($oid != 21003) {
    echo "pg_lo_import() wrong id\n";
}
pg_lo_unlink($db, $oid);
pg_exec($db, 'commit');
echo "import LO from string\n";
pg_exec($db, 'begin');
$oid = pg_lo_import($db, __FILE__, "21004");
if (!$oid) {
    echo "pg_lo_import() error\n";
}
if ($oid != 21004) {
    echo "pg_lo_import() wrong id\n";
}
pg_lo_unlink($db, $oid);
pg_exec($db, 'commit');
echo "import LO using default connection\n";
pg_exec('begin');
$oid = pg_lo_import($db, __FILE__, 21005);
if (!$oid) {
    echo "pg_lo_import() error\n";
}
if ($oid != 21005) {
    echo "pg_lo_import() wrong id\n";
}
pg_lo_unlink($oid);
pg_exec('commit');
echo "OK";
Exemplo n.º 14
0
 /**
  *
  */
 function lo_unlink($oid)
 {
     return pg_lo_unlink($this->connection, $oid);
 }
 function BlobDelete($blob)
 {
     pg_query($this->_connectionID, 'begin');
     $result = @pg_lo_unlink($blob);
     pg_query($this->_connectionID, 'commit');
     return $result;
 }
Exemplo n.º 16
0
function DB_lo_unlink($conn, $data)
{
    if (($fp = DB_lo_open($conn, $data, "r")) === false) {
        return false;
    }
    DB_lo_close($fp);
    if (strcmp(phpversion(), '4.2.0') < 0) {
        return pg_lounlink($conn, $data);
    } else {
        return pg_lo_unlink($conn, $data);
    }
}
Exemplo n.º 17
0
 function BlobDelete($blob)
 {
     pg_exec($this->_connectionID, "begin");
     $result = @pg_lo_unlink($blob);
     pg_exec($this->_connectionID, "commit");
     return $result;
 }
Exemplo n.º 18
0
pg_lo_close($handle);
pg_exec($db, "commit");
echo "unlink LO\n";
pg_exec($db, "begin");
pg_lo_unlink($db, $oid) or print "pg_lo_unlink() error 1\n";
pg_exec($db, "commit");
// more pg_lo_unlink() tests
echo "Test without connection\n";
pg_exec($db, "begin");
$oid = pg_lo_create($db) or print "pg_lo_create() error\n";
pg_lo_unlink($oid) or print "pg_lo_unlink() error 2\n";
pg_exec($db, "commit");
echo "Test with string oid value\n";
pg_exec($db, "begin");
$oid = pg_lo_create($db) or print "pg_lo_create() error\n";
pg_lo_unlink($db, (string) $oid) or print "pg_lo_unlink() error 3\n";
pg_exec($db, "commit");
echo "import/export LO\n";
$path = dirname(__FILE__) . '/';
pg_query($db, 'begin');
$oid = pg_lo_import($db, $path . 'php.gif');
pg_query($db, 'commit');
pg_query($db, 'begin');
@unlink($path . 'php.gif.exported');
pg_lo_export($oid, $path . 'php.gif.exported', $db);
if (!file_exists($path . 'php.gif.exported')) {
    echo "Export failed\n";
}
@unlink($path . 'php.gif.exported');
pg_query($db, 'commit');
echo "OK";