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

📄 statement_8c-source.html

📁 oci的源码,可以在任何平台上编译,相当方便实用
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00554"></a>00554         }<a name="l00555"></a>00555         <span class="keywordflow">else</span><a name="l00556"></a>00556         {<a name="l00557"></a>00557             <span class="keywordtype">void</span> * ostr = NULL;<a name="l00558"></a>00558             <span class="keywordtype">int</span> osize   = -1;<a name="l00559"></a>00559 <a name="l00560"></a>00560             ostr = OCI_GetInputMetaString(bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#2df073f29af7df69965c5386886c1d03">name</a>, &amp;osize);<a name="l00561"></a>00561 <a name="l00562"></a>00562             OCI_CALL1<a name="l00563"></a>00563             (<a name="l00564"></a>00564                 res, stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, stmt,<a name="l00565"></a>00565 <a name="l00566"></a>00566                 OCIBindByName(stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#e526a309495dc7d8bcb747b2771de6b9">stmt</a>, (OCIBind **) &amp;bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle,<a name="l00567"></a>00567                               stmt-&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>, (OraText *) ostr, (sb4) osize,<a name="l00568"></a>00568                               (<span class="keywordtype">void</span> *) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.data, bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#fcbb3ea5c94af6f92f353d8cad5ece39">size</a>, bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#a7c3066a9503075a649ade3674bce071">code</a>,<a name="l00569"></a>00569                               bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.inds, bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.lens, bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#68fa7ff8c51c0193064e82f598541886">plrcds</a>,<a name="l00570"></a>00570                               (ub4) (is_pltbl == TRUE ? nbelem : 0),<a name="l00571"></a>00571                               pnbelem, exec_mode)<a name="l00572"></a>00572             )<a name="l00573"></a>00573 <a name="l00574"></a>00574             OCI_ReleaseMetaString(ostr);<a name="l00575"></a>00575         }<a name="l00576"></a>00576 <a name="l00577"></a>00577         if (code == SQLT_NTY || code == SQLT_REF)<a name="l00578"></a>00578         {<a name="l00579"></a>00579             OCI_CALL1<a name="l00580"></a>00580             (<a name="l00581"></a>00581                 res, stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, stmt,<a name="l00582"></a>00582 <a name="l00583"></a>00583                 OCIBindObject((OCIBind *) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, stmt-&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>,<a name="l00584"></a>00584                               (OCIType *) typinf-&gt;<a class="code" href="struct_o_c_i___type_info.html#b8a09ffebc55d07e53cd5520c486cf27">tdo</a>, (<span class="keywordtype">void</span> **) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.data,<a name="l00585"></a>00585                               (ub4 *) NULL, (<span class="keywordtype">void</span> **) NULL,<a name="l00586"></a>00586                               (ub4 *) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.inds)<a name="l00587"></a>00587             )<a name="l00588"></a>00588         }<a name="l00589"></a>00589 <a name="l00590"></a>00590         <span class="keywordflow">if</span> (mode == OCI_BIND_OUTPUT)<a name="l00591"></a>00591         {<a name="l00592"></a>00592             <span class="comment">/* register output placeholder */</span><a name="l00593"></a>00593 <a name="l00594"></a>00594             OCI_CALL1<a name="l00595"></a>00595             (<a name="l00596"></a>00596                 res, stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, stmt,<a name="l00597"></a>00597 <a name="l00598"></a>00598                 OCIBindDynamic((OCIBind *) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, stmt-&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>,<a name="l00599"></a>00599                                (dvoid *) bnd, OCI_ProcInBind,<a name="l00600"></a>00600                                (dvoid *) bnd, OCI_ProcOutBind)<a name="l00601"></a>00601             )<a name="l00602"></a>00602         }<a name="l00603"></a>00603 <a name="l00604"></a>00604         <span class="comment">/* setup national charset from flag if needed */</span><a name="l00605"></a>00605 <a name="l00606"></a>00606         <span class="keywordflow">if</span> (<a name="l00607"></a>00607             (<a name="l00608"></a>00608                 (bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#4892923281f05c1b53ea90d77f900f5f">type</a>    == OCI_CDT_LOB) &amp;&amp;<a name="l00609"></a>00609                 (bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#3f5dd93654e5d7a3f55d8cf74583b9c8">subtype</a> == OCI_NCLOB)<a name="l00610"></a>00610             )<a name="l00611"></a>00611 #ifdef OCI_USERDATA_UNICODE<a name="l00612"></a>00612             ||<a name="l00613"></a>00613             (<a name="l00614"></a>00614                 (bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#4892923281f05c1b53ea90d77f900f5f">type</a>          == OCI_CDT_TEXT)           &amp;&amp;<a name="l00615"></a>00615                 (<a class="code" href="group__g__connect.html#g6f61147801fce4b69edb4981ba4ea1b7" title="Return the highest Oracle version is supported by the connection.">OCI_GetVersionConnection</a>(stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>) &gt;= OCI_9) &amp;&amp;<a name="l00616"></a>00616                 (bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.lens      == NULL)<a name="l00617"></a>00617             )<a name="l00618"></a>00618 #endif<a name="l00619"></a>00619            )<a name="l00620"></a>00620         {<a name="l00621"></a>00621             ub1 csfrm = SQLCS_NCHAR;<a name="l00622"></a>00622 <a name="l00623"></a>00623             OCI_CALL1<a name="l00624"></a>00624             (<a name="l00625"></a>00625                 res, stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, stmt,<a name="l00626"></a>00626 <a name="l00627"></a>00627                 OCIAttrSet((dvoid *) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, (ub4) OCI_HTYPE_BIND,<a name="l00628"></a>00628                            (dvoid *) &amp;csfrm, (ub4) <span class="keyword">sizeof</span>(csfrm),<a name="l00629"></a>00629                            (ub4) OCI_ATTR_CHARSET_FORM,  bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#e7dec278cfe66410bfa2214035f87218">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>)<a name="l00630"></a>00630             )<a name="l00631"></a>00631         }<a name="l00632"></a>00632 <a name="l00633"></a>00633 <a name="l00634"></a>00634         <span class="keywordflow">if</span> (bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#4892923281f05c1b53ea90d77f900f5f">type</a> == OCI_CDT_TEXT)<a name="l00635"></a>00635         {<a name="l00636"></a>00636             OCI_CALL1<a name="l00637"></a>00637             (<a name="l00638"></a>00638                 res, stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, stmt,<a name="l00639"></a>00639 <a name="l00640"></a>00640                 OCIAttrSet((dvoid *) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, (ub4) OCI_HTYPE_BIND,<a name="l00641"></a>00641                            (dvoid *) &amp;bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#fcbb3ea5c94af6f92f353d8cad5ece39">size</a>, (ub4) <span class="keyword">sizeof</span>(bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#fcbb3ea5c94af6f92f353d8cad5ece39">size</a>),<a name="l00642"></a>00642                            (ub4) OCI_ATTR_MAXDATA_SIZE,  bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#e7dec278cfe66410bfa2214035f87218">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>)<a name="l00643"></a>00643             )<a name="l00644"></a>00644         }<a name="l00645"></a>00645 <a name="l00646"></a>00646 <span class="preprocessor">#ifdef OCI_CHARSET_MIXED</span><a name="l00647"></a>00647 <span class="preprocessor"></span><a name="l00648"></a>00648         <span class="comment">/* setup Unicode mode for user data in mixed builds */</span><a name="l00649"></a>00649 <a name="l00650"></a>00650         {<a name="l00651"></a>00651             ub2 csid = OCI_UTF16ID;<a name="l00652"></a>00652 <a name="l00653"></a>00653             OCI_CALL1<a name="l00654"></a>00654             (<a name="l00655"></a>00655                 res, stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>, stmt,<a name="l00656"></a>00656 <a name="l00657"></a>00657                 OCIAttrSet((dvoid *) bnd-&gt;<a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, (ub4) OCI_HTYPE_BIND,<a name="l00658"></a>00658                            (dvoid *) &amp;csid,  (ub4) <span class="keyword">sizeof</span>(csid),<a name="l00659"></a>00659                            (ub4) OCI_ATTR_CHARSET_ID,  stmt-&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>)<a name="l00660"></a>00660             )<a name="l00661"></a>00661         }<a name="l00662"></a>00662 <a name="l00663"></a>00663 <span class="preprocessor">#endif</span><a name="l00664"></a>00664 <span class="preprocessor"></span><a name="l00665"></a>00665     }<a name="l00666"></a>00666 <a name="l00667"></a>00667     <span class="comment">/* on success, we :</span><a name="l00668"></a>00668 <span class="comment">         - add the bind handle to the bind array</span><a name="l00669"></a>00669 <span class="comment">         - add the bind index to the map</span><a name="l00670"></a>00670 <span class="comment">    */</span><a name="l00671"></a>00671 <a name="l00672"></a>00672     <span class="keywordflow">if</span> (res == TRUE)<a name="l00673"></a>00673     {<a name="l00674"></a>00674         <span class="keywordflow">if</span> (mode == OCI_BIND_INPUT)<a name="l00675"></a>00675         {<a name="l00676"></a>00676             <span class="keywordflow">if</span> (reused == FALSE)<a name="l00677"></a>00677             {<a name="l00678"></a>00678                 stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#43abc63779df098420ee93c6fca0cf27">ubinds</a>[stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#33d51f51a0deeb11551dea71586bdc3d">nb_ubinds</a>++] = bnd;<a name="l00679"></a>00679 <a name="l00680"></a>00680                 <span class="comment">/* for user binds, add a positive index */</span><a name="l00681"></a>00681 <a name="l00682"></a>00682                 <a class="code" href="group__g__hash.html#g48864e58d966693d82f8a7f6fd5aeb00" title="Adds a pair string key / integer value to the hash table.">OCI_HashAddInt</a>(stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#9b697adc1d6fcabdb433d7279505bb97">map</a>, name, stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#33d51f51a0deeb11551dea71586bdc3d">nb_ubinds</a>);<a name="l00683"></a>00683             }<a name="l00684"></a>00684         }<a name="l00685"></a>00685         <span class="keywordflow">else</span><a name="l00686"></a>00686         {<a name="l00687"></a>00687             <span class="comment">/* for register binds, add a negative index */</span><a name="l00688"></a>00688 <a name="l00689"></a>00689             stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#19eb8e85ee77ae645f6c1f1e7eaa3eb5">rbinds</a>[stmt-&gt;<a class="code" href="struct_o_c_i___statement.html#13605ddb96fc31bc8408c38880ec8447">nb_rbinds</a>++] = bnd;<a name="l00690"></a>00690 <a name="l00691"></a>00691             index = (int) stmt-&gt;<a class="code" href="struct_o_c_i___sta

⌨️ 快捷键说明

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