(PECL CUBRID >= 8.4.1)
cubrid_lob2_seek64 — Перемещает курсор LOB-объекта
$lob_identifier
, string $offset
, int $origin
= CUBRID_CURSOR_CURRENT): bool
Функция cubrid_lob2_seek64() используется для перемещения позиции курсора LOB-объекта на значение,
заданное в параметре offset
, в направлении, заданном в параметре origin
.
Если значение параметра offset
больше, чем можно сохранить целочисленные данные,
вы можете использовать эту функцию.
Чтобы установить параметр origin
, вы можете использовать CUBRID_CURSOR_FIRST
,
чтобы установить позицию курсора, перемещающегося вперёд на offset
единиц от начала LOB-объекта.
В этом случае параметр offset
должен быть положительным значением.
Если вы используете CUBRID_CURSOR_CURRENT
для origin
,
вы можете двигаться вперёд или назад, offset
может быть положительным или отрицательным.
Если вы используете CUBRID_CURSOR_LAST
для origin
,
вы можете перемещать назад на единицу offset
с конца LOB-объекта.
В этом случае параметр offset
должен быть положительным значением.
Замечание:
Если вы используете эту функцию для перемещения позиции курсора LOB-объекта, вы должны передать
offset
в качестве строки.
lob_identifier
Идентификатор LOB в результате работы функции cubrid_lob2_new() или полученный из набора результатов.
offset
Количество единиц, на которое нужно переместить курсор.
origin
Параметр может иметь следующие значения:
CUBRID_CURSOR_FIRST: двигаться вперёд от начала LOB-объекта.
CUBRID_CURSOR_CURRENT: двигаться вперёд или назад от текущей позиции.
CUBRID_CURSOR_LAST: двигаться назад с конца LOB-объекта.
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Пример #1 Пример использования: cubrid_lob2_seek64()
<?php
// test_lob (id INT, contents CLOB)
// Длина данных doc_1.txt должна быть больше 20101029056306120215.
$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");
cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");
$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);
$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // или cubrid_lob2_bind($req, 2, $lob);
cubrid_execute($req);
cubrid_lob2_close($lob);
$req = cubrid_execute($conn, "select * from test_lob");
$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob = $row[1];
cubrid_lob2_seek64($lob, "20101029056306120215", CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 20);
echo $data."\n";
cubrid_disconnect($conn);
?>