Дипломные работы, курсовые проекты на заказ, контрольные работы на заказ

 
Начертательная геометрия Практикум по решению задач Геометрическое черчение Инженерная графика ЕСКД Кратные интегралы Математический анализ Матрицы Пределы Производные Векторная алгебра Интегральное исчисление ТФКП Ядерная физика Электростатика Магнетизм Оптика Информационные технологии
Учебник РНР
НазадВперёд

OCINewDescriptor

(PHP 3>= 3.0.7, PHP 4)

OCINewDescriptor - инициализирует новый пустой LOB или FILE-дескриптор.

Описание

string OCINewDescriptor (int connection [, int type])

OCINewDescriptor() выделяет место для хранения дескрипторов или LOB-локаторов. Правильными значениями для type являются OCI_D_FILE, OCI_D_LOB, OCI_D_ROWID. Для LOB-дескрипторов методы load, save и savefile ассоциированы с этим дескриптором, для BFILE имеется только метод load. См. примечания по использованию во втором примере.

Пример 1. OCINewDescriptor
<?php 
/* Это скрипт разработан для вызова из HTML-формы. * Он ожидает, что ему будут 
переданы из формы $user, $password, $table, $where * и $commitsize. Затем скрипт 
удаляет выбранные ряды * с использованием ROWID и подтверждает после каждой установки 
* $commitsize-рядов. (Используйте осторожно, отката нет) */ $conn = OCILogon($user, 
$password); $stmt = OCIParse($conn,"select rowid from $table $where"); $rowid 
= OCINewDescriptor($conn,OCI_D_ROWID); OCIDefineByName($stmt,"ROWID",&$rowid); 
OCIExecute($stmt); while ( OCIFetch($stmt) ) { $nrows = OCIRowCount($stmt); $delete 
= OCIParse($conn,"delete from $table where ROWID = :rid"); OCIBindByName($delete,":rid",&$rowid,-1,OCI_B_ROWID); 
OCIExecute($delete); print "$nrows\n"; if ( ($nrows % $commitsize) == 0 ) { OCICommit($conn); 
} } $nrows = OCIRowCount($stmt); print "$nrows deleted...\n"; OCIFreeStatement($stmt); 
OCILogoff($conn); ?>
<?php 
/* Этот скрипт демонстрирует загрузку файлов в LOB-столбцы * Поле формы для этого 
примера выглядит так: * <form action="upload.php" method="post" enctype="multipart/form-data"> 
* <input type="file" name="lob_upload"> * ... */ if(!isset($lob_upload) 
|| $lob_upload == 'none'){ ?> <form action="upload.php" method="post" 
enctype="multipart/form-data"> Upload file: <input type="file" name="lob_upload"><br> 
<input type="submit" value="Upload"> - <input type="reset"> </form> 
<?php } else { // $lob_upload содержит временное имя загружаемого файла. // 
См. также раздел возможностей загрузки файлов, // если вам нужно использовать 
безопасную загрузку. $conn = OCILogon($user, $password); $lob = OCINewDescriptor($conn, 
OCI_D_LOB); $stmt = OCIParse($conn,"insert into $table (id, the_blob) values(my_seq.NEXTVAL, 
EMPTY_BLOB()) returning the_blob into :the_blob"); OCIBindByName($stmt, ':the_blob', 
&$lob, -1, OCI_B_BLOB); OCIExecute($stmt, OCI_DEFAULT); if($lob->savefile($lob_upload)){ 
OCICommit($conn); echo "Blob successfully uploaded\n"; }else{ echo "Couldn't upload 
Blob\n"; } OCIFreeDesc($lob); OCIFreeStatement($stmt); OCILogoff($conn); } ?>
Пример 2. OCINewDescriptor
<?php 
/* Вызывается хранимые процедуры PL/SQL, содержащие clobs в качестве * параметров 
ввода (PHP 4 >= 4.0.6). * Пример подписи хранимой процедуры PL/SQL выглядит 
так: * * PROCEDURE save_data * Имя аргумента Тип In/Out Default? * ------------------------------ 
----------------------- ------ -------- * KEY NUMBER(38) IN * DATA CLOB IN * */ 
$conn = OCILogon($user, $password); $stmt = OCIParse($conn, "begin save_data(:key, 
:data); end;"); $clob = OCINewDescriptor($conn, OCI_D_LOB); OCIBindByName($stmt, 
':key', $key); OCIBindByName($stmt, ':data', $clob, -1, OCI_B_CLOB); $clob->WriteTemporary($data); 
OCIExecute($stmt, OCI_DEFAULT); OCICommit($conn); $clob->close(); $clob->free(); 
OCIFreeStatement($stmt); ?>

НазадОглавление Вперёд
OCINewCursor ВверхOCINLogon