1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.14 $ -->
<!--
DO NOT TRANSLATE THIS FILE.
THE FUNCTION IT DESCRIBES WAS RENAMED AND THIS NAME IS DEPRECATED.
PLEASE, TRANSLATE THE APPROPRIATE NEW FILE.
-->
<!-- splitted from ./en/functions/oci8.xml, last change in rev 1.2 -->
<refentry id="function.ocinewdescriptor">
<refnamediv>
<refname>ocinewdescriptor</refname>
<refpurpose>
Initialize a new empty LOB or FILE descriptor
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>OCI-Lob</type><methodname>ocinewdescriptor</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter></methodparam>
</methodsynopsis>
<para>
<function>ocinewdescriptor</function> allocates storage to hold
descriptors or LOB locators. Valid values for
<parameter>type</parameter> are <constant>OCI_D_FILE</constant>,
<constant>OCI_D_LOB</constant> and <constant>OCI_D_ROWID</constant>.
For LOB descriptors, the methods load, save, and savefile are
associated with the descriptor, for BFILE only the load method
exists. See the second example usage hints.
</para>
<para>
<example>
<title><function>ocinewdescriptor</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
/* This script is designed to be called from a HTML form.
* It expects $user, $password, $table, $where, and $commitsize
* to be passed in from the form. The script then deletes
* the selected rows using the ROWID and commits after each
* set of $commitsize rows. (Use with care, there is no rollback)
*/
$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);
echo "$nrows\n";
if (($nrows % $commitsize) == 0) {
OCICommit($conn);
}
}
$nrows = OCIRowCount($stmt);
echo "$nrows deleted...\n";
OCIFreeStatement($stmt);
OCILogoff($conn);
?>
]]>
</programlisting>
<programlisting role="php">
<![CDATA[
<?php
/* This script demonstrates file upload to LOB columns
* The formfield used for this example looks like this
* <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" value="Reset" />
</form>
<?php
} else {
// $lob_upload contains the temporary filename of the uploaded file
// see also the features section on file upload,
// if you would like to use secure uploads
$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);
}
?>
]]>
</programlisting>
</example>
<example>
<title><function>ocinewdescriptor</function> second example</title>
<programlisting role="php">
<![CDATA[
<?php
/* Calling PL/SQL stored procedures which contain clobs as input
* parameters (PHP 4 >= 4.0.6).
* Example PL/SQL stored procedure signature is:
*
* PROCEDURE save_data
* Argument Name Type 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);
?>
]]>
</programlisting>
</example>
</para>
<note>
<para>
This function was renamed to <function>oci_new_descriptor</function>
after PHP >= 5.0.0. For downward compatibility
<function>ocinewdescriptor</function> can also be used.
This is deprecated, however.
</para>
</note>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|