📄 statement_8c-source.html
字号:
<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-><a class="code" href="struct_o_c_i___bind.html#2df073f29af7df69965c5386886c1d03">name</a>, &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-><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-><a class="code" href="struct_o_c_i___statement.html#e526a309495dc7d8bcb747b2771de6b9">stmt</a>, (OCIBind **) &bnd-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle,<a name="l00567"></a>00567 stmt-><a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-><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-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.data, bnd-><a class="code" href="struct_o_c_i___bind.html#fcbb3ea5c94af6f92f353d8cad5ece39">size</a>, bnd-><a class="code" href="struct_o_c_i___bind.html#a7c3066a9503075a649ade3674bce071">code</a>,<a name="l00569"></a>00569 bnd-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.inds, bnd-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.lens, bnd-><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-><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-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, stmt-><a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-><a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>,<a name="l00584"></a>00584 (OCIType *) typinf-><a class="code" href="struct_o_c_i___type_info.html#b8a09ffebc55d07e53cd5520c486cf27">tdo</a>, (<span class="keywordtype">void</span> **) bnd-><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-><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-><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-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, stmt-><a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-><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-><a class="code" href="struct_o_c_i___bind.html#4892923281f05c1b53ea90d77f900f5f">type</a> == OCI_CDT_LOB) &&<a name="l00609"></a>00609 (bnd-><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-><a class="code" href="struct_o_c_i___bind.html#4892923281f05c1b53ea90d77f900f5f">type</a> == OCI_CDT_TEXT) &&<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-><a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>) >= OCI_9) &&<a name="l00616"></a>00616 (bnd-><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-><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-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, (ub4) OCI_HTYPE_BIND,<a name="l00628"></a>00628 (dvoid *) &csfrm, (ub4) <span class="keyword">sizeof</span>(csfrm),<a name="l00629"></a>00629 (ub4) OCI_ATTR_CHARSET_FORM, bnd-><a class="code" href="struct_o_c_i___bind.html#e7dec278cfe66410bfa2214035f87218">stmt</a>-><a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-><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-><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-><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-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, (ub4) OCI_HTYPE_BIND,<a name="l00641"></a>00641 (dvoid *) &bnd-><a class="code" href="struct_o_c_i___bind.html#fcbb3ea5c94af6f92f353d8cad5ece39">size</a>, (ub4) <span class="keyword">sizeof</span>(bnd-><a class="code" href="struct_o_c_i___bind.html#fcbb3ea5c94af6f92f353d8cad5ece39">size</a>),<a name="l00642"></a>00642 (ub4) OCI_ATTR_MAXDATA_SIZE, bnd-><a class="code" href="struct_o_c_i___bind.html#e7dec278cfe66410bfa2214035f87218">stmt</a>-><a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-><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-><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-><a class="code" href="struct_o_c_i___bind.html#84f5e5f6c4bc3a1118269bdc0acde91d">buf</a>.handle, (ub4) OCI_HTYPE_BIND,<a name="l00658"></a>00658 (dvoid *) &csid, (ub4) <span class="keyword">sizeof</span>(csid),<a name="l00659"></a>00659 (ub4) OCI_ATTR_CHARSET_ID, stmt-><a class="code" href="struct_o_c_i___statement.html#338ddf58debd7de6ab9355f1e75d78f6">con</a>-><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-><a class="code" href="struct_o_c_i___statement.html#43abc63779df098420ee93c6fca0cf27">ubinds</a>[stmt-><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-><a class="code" href="struct_o_c_i___statement.html#9b697adc1d6fcabdb433d7279505bb97">map</a>, name, stmt-><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-><a class="code" href="struct_o_c_i___statement.html#19eb8e85ee77ae645f6c1f1e7eaa3eb5">rbinds</a>[stmt-><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-><a class="code" href="struct_o_c_i___sta
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -