pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_tell Devuelve la posición actual en un objeto grande de PostgreSQL

Descripción

pg_lo_tell(PgSql\Lob $lob): int

pg_lo_tell() devuelve la posición actual (desde el inicio) del puntero de lectura en el objeto grande large_object.

Para utilizar una interfaz con un objeto grande, es necesario incluirlo en un bloque de transacción.

Parámetros

lob

An PgSql\Lob instance, returned by pg_lo_open().

Valores devueltos

La posición actual del puntero (en número de bytes) desde el inicio del objeto grande. Si hay un error, el valor devuelto será negativo.

Historial de cambios

Versión Descripción
8.1.0 The lob parameter expects an PgSql\Lob instance now; previously, a recurso was expected.

Ejemplos

Ejemplo #1 Ejemplo con pg_lo_tell()

<?php
$doc_oid
= 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
// Salta los primeros 50000 bytes
pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
// Se verifica cuántos bytes se han saltado
$offset = pg_lo_tell($handle);
echo
"La posición del puntero es: $offset";
pg_query($database, "commit");
?>

El resultado del ejemplo sería:

La posición del puntero es: 50000

Ver también

  • pg_lo_seek() - Modifica la posición en un objeto de gran tamaño

add a note

User Contributed Notes 1 note

up
0
Marv-CZ
14 years ago
Function to take a large object size:

<?php
function pg_lo_size ($lo) {
$pos = pg_lo_tell ($lo);
pg_lo_seek ($lo, 0, PGSQL_SEEK_END);
$size = pg_lo_tell ($lo);
pg_lo_seek ($lo, $pos, PGSQL_SEEK_SET);
return
$size;
}
?>
To Top