(PECL CUBRID >= 8.4.1)
cubrid_lob2_seek64 — 移動 lob 物件的游標
cubrid_lob2_seek64() 函式用於將 lob 物件的游標位置依據 offset
參數設定的值,以及 origin
參數設定的方向進行移動。如果想要移動的 offset
值大於整數資料型態所能儲存的範圍,則可以使用此函式。
設定 origin
參數為 CUBRID_CURSOR_FIRST
時,游標位置會從起始位置向前移動 offset
單位。在此情況下,offset
必須為正值。
如果將 origin
設定為 CUBRID_CURSOR_CURRENT
,則可以向前或向後移動,且 offset
可以是正值或負值。
如果將 origin
設定為 CUBRID_CURSOR_LAST
,則游標位置會從 LOB 物件的結尾向後移動 offset
單位,且 offset
只能是正值。
注意事項:
使用此函式移動 lob 物件的游標位置時,應將
offset
以字串形式傳遞。
lob_identifier
cubrid_lob2_new() 的執行結果或從結果集中取得的 Lob 識別碼。
offset
想要移動游標的單位數量。
origin
此參數可以是下列值
CUBRID_CURSOR_FIRST:從起始位置向前移動。
CUBRID_CURSOR_CURRENT:從目前位置向前或向後移動。
CUBRID_CURSOR_LAST:從 LOB 物件的結尾向後移動。
範例 #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);
?>