⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lob_8c-source.html

📁 oci的源码,可以在任何平台上编译,相当方便实用
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00578"></a>00578             <a name="l00579"></a>00579             OCILobCopy2(lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#f20d1bea40e79481aeece933a4c70898">cxt</a>, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#bd1e86de291b7773f17282a1e9f79bd6">handle</a>,<a name="l00580"></a>00580                        lob_src-&gt;<a class="code" href="struct_o_c_i___lob.html#bd1e86de291b7773f17282a1e9f79bd6">handle</a>, (ub8) count, <a name="l00581"></a>00581                        (ub8) (offset_dst + 1), <a name="l00582"></a>00582                        (ub8) (offset_src + 1))<a name="l00583"></a>00583         )<a name="l00584"></a>00584     }<a name="l00585"></a>00585     <span class="keywordflow">else</span><a name="l00586"></a>00586 <a name="l00587"></a>00587 <span class="preprocessor">#endif</span><a name="l00588"></a>00588 <span class="preprocessor"></span> <a name="l00589"></a>00589     {<a name="l00590"></a>00590        ub4 count32      = (ub4) count;<a name="l00591"></a>00591        ub4 offset_src32 = (ub4) offset_src;<a name="l00592"></a>00592        ub4 offset_dst32 = (ub4) offset_dst;<a name="l00593"></a>00593 <a name="l00594"></a>00594 <a name="l00595"></a>00595         OCI_CALL2<a name="l00596"></a>00596         (<a name="l00597"></a>00597             res, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>, <a name="l00598"></a>00598             <a name="l00599"></a>00599             OCILobCopy(lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#f20d1bea40e79481aeece933a4c70898">cxt</a>, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#bd1e86de291b7773f17282a1e9f79bd6">handle</a>,<a name="l00600"></a>00600                        lob_src-&gt;<a class="code" href="struct_o_c_i___lob.html#bd1e86de291b7773f17282a1e9f79bd6">handle</a>, count32, offset_dst32 + 1,<a name="l00601"></a>00601                        offset_src32 + 1)<a name="l00602"></a>00602          )<a name="l00603"></a>00603     }<a name="l00604"></a>00604     <a name="l00605"></a>00605     OCI_RESULT(res);<a name="l00606"></a>00606 <a name="l00607"></a>00607     <span class="keywordflow">return</span> res;<a name="l00608"></a>00608 }<a name="l00609"></a>00609 <a name="l00610"></a>00610 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00611"></a>00611 <span class="comment"> * OCI_LobCopyFromFile</span><a name="l00612"></a>00612 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00613"></a>00613 <a name="l00614"></a><a class="code" href="group__g__lob.html#g3cd99f8efdcdbfdc4c273e72c3bde4cc">00614</a> <span class="keywordtype">boolean</span> OCI_API <a class="code" href="group__g__lob.html#g3cd99f8efdcdbfdc4c273e72c3bde4cc" title="Copy a portion of a source FILE into a destination LOB.">OCI_LobCopyFromFile</a>(<a class="code" href="struct_o_c_i___lob.html" title="Oracle Internal Large objects:.">OCI_Lob</a> *lob, <a class="code" href="struct_o_c_i___file.html" title="Oracle External Large objects:.">OCI_File</a> *file,<a name="l00615"></a>00615                                     big_uint offset_dst,<a name="l00616"></a>00616                                     big_uint offset_src,<a name="l00617"></a>00617                                     big_uint count)<a name="l00618"></a>00618 {<a name="l00619"></a>00619     <span class="keywordtype">boolean</span> res  = TRUE;<a name="l00620"></a>00620 <a name="l00621"></a>00621     OCI_CHECK_PTR(OCI_IPC_LOB, lob,   FALSE);<a name="l00622"></a>00622     OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE);<a name="l00623"></a>00623 <a name="l00624"></a>00624 <span class="preprocessor">#ifdef OCI_LOB2_API_ENABLED</span><a name="l00625"></a>00625 <span class="preprocessor"></span><a name="l00626"></a>00626     <span class="keywordflow">if</span> (OCILib.use_lob_ub8)<a name="l00627"></a>00627     {<a name="l00628"></a>00628         OCI_CALL2<a name="l00629"></a>00629         (<a name="l00630"></a>00630             res, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>, <a name="l00631"></a>00631             <a name="l00632"></a>00632             OCILobLoadFromFile2(lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#f20d1bea40e79481aeece933a4c70898">cxt</a>, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>,<a name="l00633"></a>00633                                 lob-&gt;<a class="code" href="struct_o_c_i___lob.html#bd1e86de291b7773f17282a1e9f79bd6">handle</a>, file-&gt;<a class="code" href="struct_o_c_i___file.html#3f2e960fe0c52b7f2f11637504f94205">handle</a>,<a name="l00634"></a>00634                                 (ub8) count,<a name="l00635"></a>00635                                 (ub8) (offset_dst + 1),<a name="l00636"></a>00636                                 (ub8) (offset_src + 1))<a name="l00637"></a>00637         )<a name="l00638"></a>00638     }<a name="l00639"></a>00639     <span class="keywordflow">else</span><a name="l00640"></a>00640 <a name="l00641"></a>00641 <span class="preprocessor">#endif</span><a name="l00642"></a>00642 <span class="preprocessor"></span> <a name="l00643"></a>00643     {<a name="l00644"></a>00644         ub4 count32      = (ub4) count;<a name="l00645"></a>00645         ub4 offset_src32 = (ub4) offset_src;<a name="l00646"></a>00646         ub4 offset_dst32 = (ub4) offset_dst;<a name="l00647"></a>00647 <a name="l00648"></a>00648         OCI_CALL2<a name="l00649"></a>00649         (<a name="l00650"></a>00650             res, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>, <a name="l00651"></a>00651             <a name="l00652"></a>00652             OCILobLoadFromFile(lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#f20d1bea40e79481aeece933a4c70898">cxt</a>, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>,<a name="l00653"></a>00653                                lob-&gt;<a class="code" href="struct_o_c_i___lob.html#bd1e86de291b7773f17282a1e9f79bd6">handle</a>, file-&gt;<a class="code" href="struct_o_c_i___file.html#3f2e960fe0c52b7f2f11637504f94205">handle</a>, count32,<a name="l00654"></a>00654                                offset_dst32 + 1, offset_src32 + 1)<a name="l00655"></a>00655         )<a name="l00656"></a>00656     }<a name="l00657"></a>00657 <a name="l00658"></a>00658     OCI_RESULT(res);<a name="l00659"></a>00659 <a name="l00660"></a>00660     <span class="keywordflow">return</span> res;<a name="l00661"></a>00661 }<a name="l00662"></a>00662 <a name="l00663"></a>00663 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00664"></a>00664 <span class="comment"> * OCI_LobAppend</span><a name="l00665"></a>00665 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00666"></a>00666 <a name="l00667"></a><a class="code" href="group__g__lob.html#g7bfac772587753b2cef9c5a704ae7ce9">00667</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> OCI_API <a class="code" href="group__g__lob.html#g7bfac772587753b2cef9c5a704ae7ce9" title="Append a buffer at the end of a LOB.">OCI_LobAppend</a>(<a class="code" href="struct_o_c_i___lob.html" title="Oracle Internal Large objects:.">OCI_Lob</a> *lob, <span class="keywordtype">void</span> *buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len)<a name="l00668"></a>00668 { <a name="l00669"></a>00669     ub4 size_in  = 0;<a name="l00670"></a>00670     ub4 size_out = 0;<a name="l00671"></a>00671     ub2 csid     = 0;<a name="l00672"></a>00672     ub1 csfrm    = 0;<a name="l00673"></a>00673     <span class="keywordtype">void</span> *obuf   = NULL;<a name="l00674"></a>00674     <span class="keywordtype">boolean</span> res  = TRUE;<a name="l00675"></a>00675 <a name="l00676"></a>00676     OCI_CHECK_PTR(OCI_IPC_LOB, lob, 0);<a name="l00677"></a>00677     OCI_CHECK_MIN(lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>, NULL, len, 1, 0);<a name="l00678"></a>00678 <a name="l00679"></a>00679 <span class="preprocessor">#ifndef OCI_CHARSET_ANSI</span><a name="l00680"></a>00680 <span class="preprocessor"></span>    csid = OCI_UTF16ID;<a name="l00681"></a>00681 <span class="preprocessor">#endif</span><a name="l00682"></a>00682 <span class="preprocessor"></span><a name="l00683"></a>00683     <span class="comment">/* OCILobWriteAppend() seems to cause problems on Oracle client 8.1 and 9.0 </span><a name="l00684"></a>00684 <span class="comment">       It's an Oracle known bug #886191</span><a name="l00685"></a>00685 <span class="comment">       So we use OCI_LobSeek() + OCI_LobWrite() instead */</span><a name="l00686"></a>00686 <a name="l00687"></a>00687     <span class="keywordflow">if</span> (OCILib.ver_runtime &lt; OCI_10)<a name="l00688"></a>00688     {<a name="l00689"></a>00689        <span class="keywordflow">return</span> <a class="code" href="group__g__lob.html#g63df7f944c418642fc04571a4a522b87" title="Perform a seek operation on the OCI_lob content buffer.">OCI_LobSeek</a>(lob, <a class="code" href="group__g__lob.html#g1fed642e2fdc4b72724340e27e13153e" title="Return the actual length of a lob.">OCI_LobGetLength</a>(lob), OCI_SEEK_SET) &amp;&amp;<a name="l00690"></a>00690               <a class="code" href="group__g__lob.html#g949f7050609430486c9ef0f3c488d38a" title="Write a buffer into a LOB.">OCI_LobWrite</a>(lob, buffer, len);<a name="l00691"></a>00691     }        <a name="l00692"></a>00692 <a name="l00693"></a>00693     size_out = size_in = len;<a name="l00694"></a>00694     <a name="l00695"></a>00695     <span class="keywordflow">if</span> (lob-&gt;<a class="code" href="struct_o_c_i___lob.html#f9e973d2ab2c1ec747e9e219f5ca7ba6">type</a> != OCI_BLOB)<a name="l00696"></a>00696     {<a name="l00697"></a>00697         size_in *= <span class="keyword">sizeof</span>(dtext);<a name="l00698"></a>00698         obuf  = OCI_GetInputDataString(buffer, (<span class="keywordtype">int</span> *) &amp;size_in);<a name="l00699"></a>00699     }<a name="l00700"></a>00700     <span class="keywordflow">else</span><a name="l00701"></a>00701        obuf = buffer;<a name="l00702"></a>00702 <a name="l00703"></a>00703     <span class="keywordflow">if</span> (lob-&gt;<a class="code" href="struct_o_c_i___lob.html#f9e973d2ab2c1ec747e9e219f5ca7ba6">type</a> == OCI_NCLOB)<a name="l00704"></a>00704         csfrm = SQLCS_NCHAR;<a name="l00705"></a>00705     <span class="keywordflow">else</span><a name="l00706"></a>00706         csfrm = SQLCS_IMPLICIT;<a name="l00707"></a>00707 <a name="l00708"></a>00708 <span class="preprocessor">#ifdef OCI_LOB2_API_ENABLED</span><a name="l00709"></a>00709 <span class="preprocessor"></span><a name="l00710"></a>00710     <span class="keywordflow">if</span> (OCILib.use_lob_ub8)<a name="l00711"></a>00711     {<a name="l00712"></a>00712         ub8 size_char = (ub8) len;<a name="l00713"></a>00713         ub8 size_byte = (ub8) size_in;<a name="l00714"></a>00714         <a name="l00715"></a>00715         OCI_CALL2<a name="l00716"></a>00716         (<a name="l00717"></a>00717             res, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>, <a name="l00718"></a>00718             <a name="l00719"></a>00719             OCILobWriteAppend2(lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#f20d1bea40e79481aeece933a4c70898">cxt</a>, lob-&gt;<a class="code" href="struct_o_c_i___lob.html#17646b1cc70c0c914ecb28849333fa65">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, <a name="l00720"></a>00720                                lob-&gt;<a class="code" href="struct_o_c_i___lob.html#bd1e86de291b7773f17282a1e9f79bd6">handle</a>, &amp;size_byte,<a name="l00721"></a>00721                                &amp;size_char, obuf, (ub8) size_in, <a name="l00722"></a>00722                                (ub1) OCI_ONE_PIECE, <a name="l00723"></a>00723                                (dvoid *) NULL,<a name="l00724"></a>00724                                NU

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -