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

📄 long_8c-source.html

📁 ORACLE编程的好东西,纯C写的OCI封装.很好用,支持数据池.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<a name="l00200"></a>00200 <a name="l00201"></a>00201     OCI_CALL1<a name="l00202"></a>00202     (<a name="l00203"></a>00203         res, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>,<a name="l00204"></a>00204         <a name="l00205"></a>00205         OCIStmtGetPieceInfo(lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#e526a309495dc7d8bcb747b2771de6b9">stmt</a>, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, &amp;handle,<a name="l00206"></a>00206                             &amp;type, &amp;in_out, &amp;iter, &amp;dx, &amp;piece)<a name="l00207"></a>00207     )<a name="l00208"></a>00208 <a name="l00209"></a>00209     <span class="comment">/* set up piece type */</span><a name="l00210"></a>00210 <a name="l00211"></a>00211     <span class="keywordflow">if</span> (len &gt; 0)<a name="l00212"></a>00212         piece = (ub1) ((lg-&gt;<a class="code" href="struct_o_c_i___long.html#936260167a8950b8022f7050f2f3dd87">size</a> &gt; 0) ? OCI_NEXT_PIECE : OCI_FIRST_PIECE);<a name="l00213"></a>00213     <span class="keywordflow">else</span><a name="l00214"></a>00214         piece = (ub1) OCI_LAST_PIECE;<a name="l00215"></a>00215 <a name="l00216"></a>00216     <span class="comment">/* correct size to read for last piece */</span><a name="l00217"></a>00217 <a name="l00218"></a>00218     <span class="keywordflow">if</span> ((lg-&gt;<a class="code" href="struct_o_c_i___long.html#936260167a8950b8022f7050f2f3dd87">size</a> + len) &gt;= lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#f66fea62f75b943c334283cd346fb729">long_size</a>)<a name="l00219"></a>00219     {<a name="l00220"></a>00220         piece = OCI_LAST_PIECE;<a name="l00221"></a>00221         count = lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#f66fea62f75b943c334283cd346fb729">long_size</a> - lg-&gt;<a class="code" href="struct_o_c_i___long.html#936260167a8950b8022f7050f2f3dd87">size</a>;<a name="l00222"></a>00222     }<a name="l00223"></a>00223 <a name="l00224"></a>00224     <span class="comment">/* set up info for writing */</span><a name="l00225"></a>00225 <a name="l00226"></a>00226     OCI_CALL1<a name="l00227"></a>00227     (<a name="l00228"></a>00228         res, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>,<a name="l00229"></a>00229         <a name="l00230"></a>00230         OCIStmtSetPieceInfo(handle, type, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, (dvoid *) obuf, <a name="l00231"></a>00231                             &amp;count,  piece, (dvoid *) NULL, (ub2 *) NULL)<a name="l00232"></a>00232     )<a name="l00233"></a>00233 <a name="l00234"></a>00234     <span class="comment">/* perform write call */</span><a name="l00235"></a>00235 <a name="l00236"></a>00236     <span class="keywordflow">if</span> (res == TRUE)<a name="l00237"></a>00237     {     <a name="l00238"></a>00238         code = OCIStmtExecute(lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#f20d1bea40e79481aeece933a4c70898">cxt</a>, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#e526a309495dc7d8bcb747b2771de6b9">stmt</a>,<a name="l00239"></a>00239                               lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, (ub4) 1, (ub4) 0, <a name="l00240"></a>00240                               (OCISnapshot *) NULL, (OCISnapshot *) NULL,<a name="l00241"></a>00241                               (ub4) 0);<a name="l00242"></a>00242     }<a name="l00243"></a>00243      <a name="l00244"></a>00244     <span class="keywordflow">if</span> ((code != OCI_SUCCESS) &amp;&amp; (code != OCI_NEED_DATA))<a name="l00245"></a>00245     {<a name="l00246"></a>00246         OCI_ExceptionOCI(lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, lg-&gt;<a class="code" href="struct_o_c_i___long.html#772460c6f3bb2b3c13dd231f1439c41c">stmt</a>);<a name="l00247"></a>00247     }<a name="l00248"></a>00248 <a name="l00249"></a>00249     <span class="keywordflow">if</span> (lg-&gt;<a class="code" href="struct_o_c_i___long.html#0eb52b112b73161c67c5e8631e5bd62d">type</a> == OCI_CLONG)<a name="l00250"></a>00250         OCI_ReleaseDataString(obuf);<a name="l00251"></a>00251 <a name="l00252"></a>00252     <span class="comment">/* update size */</span><a name="l00253"></a>00253 <a name="l00254"></a>00254     <span class="keywordflow">if</span> (res == TRUE)<a name="l00255"></a>00255     {<a name="l00256"></a>00256         lg-&gt;<a class="code" href="struct_o_c_i___long.html#936260167a8950b8022f7050f2f3dd87">size</a> += count;<a name="l00257"></a>00257 <a name="l00258"></a>00258         <span class="keywordflow">if</span> (lg-&gt;<a class="code" href="struct_o_c_i___long.html#0eb52b112b73161c67c5e8631e5bd62d">type</a> == OCI_CLONG)<a name="l00259"></a>00259             count /= <span class="keyword">sizeof</span>(odtext);<a name="l00260"></a>00260     }<a name="l00261"></a>00261 <a name="l00262"></a>00262     OCI_RESULT(res);<a name="l00263"></a>00263 <a name="l00264"></a>00264     <span class="keywordflow">return</span> count;<a name="l00265"></a>00265 }<a name="l00266"></a>00266 <a name="l00267"></a>00267 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00268"></a>00268 <span class="comment"> * OCI_LongGetSize</span><a name="l00269"></a>00269 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00270"></a>00270 <a name="l00271"></a><a class="code" href="group__g__long.html#gf7ed15bc901e38b9bc3394f334bf8d4c">00271</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> OCI_API <a class="code" href="group__g__long.html#gf7ed15bc901e38b9bc3394f334bf8d4c" title="Return the buffer size of a long object in bytes (OCI_BLONG) or character (OCI_CLONG)...">OCI_LongGetSize</a>(<a class="code" href="struct_o_c_i___long.html" title="Oracle Long datatype.">OCI_Long</a> *lg)<a name="l00272"></a>00272 {<a name="l00273"></a>00273     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size = 0;<a name="l00274"></a>00274 <a name="l00275"></a>00275     OCI_CHECK_PTR(OCI_IPC_LONG, lg, 0);<a name="l00276"></a>00276 <a name="l00277"></a>00277     size = lg-&gt;<a class="code" href="struct_o_c_i___long.html#936260167a8950b8022f7050f2f3dd87">size</a>;<a name="l00278"></a>00278 <a name="l00279"></a>00279     <span class="keywordflow">if</span> (lg-&gt;<a class="code" href="struct_o_c_i___long.html#0eb52b112b73161c67c5e8631e5bd62d">type</a> == OCI_CLONG)<a name="l00280"></a>00280         size /= <span class="keyword">sizeof</span>(dtext);<a name="l00281"></a>00281 <a name="l00282"></a>00282     OCI_RESULT(TRUE);<a name="l00283"></a>00283 <a name="l00284"></a>00284     <span class="keywordflow">return</span> size;<a name="l00285"></a>00285 }<a name="l00286"></a>00286 <a name="l00287"></a>00287 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00288"></a>00288 <span class="comment"> * OCI_LongGetBuffer</span><a name="l00289"></a>00289 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00290"></a>00290 <a name="l00291"></a><a class="code" href="group__g__long.html#gee33459c8a44c3216df4335627cac818">00291</a> <span class="keywordtype">void</span> * OCI_API <a class="code" href="group__g__long.html#gee33459c8a44c3216df4335627cac818" title="Return the internal buffer of an OCI_Long object read from a fetch sequence.">OCI_LongGetBuffer</a>(<a class="code" href="struct_o_c_i___long.html" title="Oracle Long datatype.">OCI_Long</a> *lg)<a name="l00292"></a>00292 {<a name="l00293"></a>00293     OCI_CHECK_PTR(OCI_IPC_LONG, lg, NULL);<a name="l00294"></a>00294 <a name="l00295"></a>00295     OCI_RESULT(TRUE);<a name="l00296"></a>00296 <a name="l00297"></a>00297     <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *) lg-&gt;<a class="code" href="struct_o_c_i___long.html#c1d382a8949e5d85954dc900c7b2ac7f">buffer</a>;<a name="l00298"></a>00298 }</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Oct 9 10:07:43 2008 for OCILIB (C Driver for Oracle) by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address></body></html>

⌨️ 快捷键说明

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