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

📄 group__complex.html

📁 Linux下的操作oracle数据库的连接库
💻 HTML
📖 第 1 页 / 共 5 页
字号:
</dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__complex.html#ga0">sqlo_prepare</a>, <a class="el" href="group__complex.html#ga1">sqlo_bind_by_name</a>, <a class="el" href="group__complex.html#ga5">sqlo_define_by_pos</a> </dd></dl><dl compact><dt><b>Since:</b></dt><dd>Version 2.2 </dd></dl><p>Definition at line <a class="el" href="sqlora_8c-source.html#l06748">6748</a> of file <a class="el" href="sqlora_8c-source.html">sqlora.c</a>.<p>References <a class="el" href="sqlora_8c-source.html#l03039">_bind_by_pos2()</a>, <a class="el" href="sqlora_8c-source.html#l02822">_get_data_type_str()</a>, <a class="el" href="sqlora_8c-source.html#l04319">_get_trace_fp()</a>, <a class="el" href="sqlora_8c-source.html#l00367">CHECK_STHANDLE</a>, <a class="el" href="sqlora_8c-source.html#l00565">_sqlo_stmt_struct::dbp</a>, <a class="el" href="group__constants.html#gga4a36">SQLO_INVALID_STMT_HANDLE</a>, <a class="el" href="sqlora_8c.html#a35">sqlo_stmt_struct_ptr_t</a>, and <a class="el" href="sqlora_8c-source.html#l00238">TRACE</a>.    </td>  </tr></table><p>Here is the call graph for this function:<p><center><img src="group__complex_ga4_cgraph.png" border="0" usemap="#group__complex_ga4_cgraph_map" alt=""></center><map name="group__complex_ga4_cgraph_map"><area href="sqlora_8c.html#a150" shape="rect" coords="197,91,301,110" alt=""><area href="sqlora_8c.html#a128" shape="rect" coords="529,51,625,70" alt=""><area href="sqlora_8c.html#a111" shape="rect" coords="351,141,481,159" alt=""><area href="sqlora_8c.html#a124" shape="rect" coords="372,5,460,23" alt=""><area href="sqlora_8c.html#a109" shape="rect" coords="369,98,463,117" alt=""></map><a class="anchor" name="ga2" doxytag="sqlora.h::sqlo_bind_ref_cursor" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> int sqlo_bind_ref_cursor </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="group__typedefs.html#ga1">sqlo_stmt_handle_t</a>&nbsp;</td>          <td class="mdname" nowrap> <em>sth</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td></td>          <td class="md" nowrap>const char *&nbsp;</td>          <td class="mdname" nowrap> <em>cursor_name</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td></td>          <td class="md" nowrap>int *&nbsp;</td>          <td class="mdname" nowrap> <em>sth2p</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Bind a REF CURSOR. <p>Binds a ref cursor and returns a new sth, which you can use to retrieve the data. <dl compact><dt><b>Note:</b></dt><dd>You can also use <a class="el" href="group__complex.html#ga1">sqlo_bind_by_name</a> and supply as SQLOT_RSET as type and the address of the new statement handle as param_addr. All other parameters are ignored.</dd></dl><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>sth</em>&nbsp;</td><td>I - The statement handle </td></tr>    <tr><td valign=top><em>cursor_name</em>&nbsp;</td><td>I - The bind name of the cursor </td></tr>    <tr><td valign=top><em>sth2p</em>&nbsp;</td><td>O - The new statement handle for the ref cursor.</td></tr>  </table></dl><dl compact><dt><b>Example:</b></dt><dd>Example using sqlo_values to get the result: <div class="fragment"><pre><span class="comment">/* $Id: ex17.c,v 1.3 2002/08/24 12:54:47 kpoitschke Exp $ */</span><span class="preprocessor">#include &lt;stdio.h&gt;</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span><span class="preprocessor">#include "examples.h"</span><span class="keywordtype">int</span> select_refcursor(<a class="code" href="group__typedefs.html#ga0">sqlo_db_handle_t</a> dbh, <span class="keywordtype">double</span> min_salary){  <a class="code" href="group__typedefs.html#ga1">sqlo_stmt_handle_t</a> sth = <a class="code" href="group__constants.html#gga5a49">SQLO_STH_INIT</a>;  <a class="code" href="group__typedefs.html#ga1">sqlo_stmt_handle_t</a> st2h;                     <span class="comment">/* handle of the ref cursor */</span>  <span class="keywordtype">double</span> sal = min_salary;  CONST <span class="keywordtype">char</span> **v;  <span class="keywordtype">int</span> status;  CONST <span class="keywordtype">char</span> * stmt =     <span class="stringliteral">"BEGIN\n"</span>    <span class="stringliteral">"    OPEN :c1 FOR SELECT ENAME, SAL FROM EMP WHERE SAL &gt;= :min_sal ORDER BY 2,1;\n"</span>    <span class="stringliteral">"END;\n"</span>;  <span class="comment">/* parse the statement */</span>  <span class="keywordflow">if</span> ( 0 &lt;= (sth = <a class="code" href="group__complex.html#ga186">sqlo_prepare</a>(dbh, stmt))) {    <span class="comment">/* bind all variables */</span>    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> !=         ( <a class="code" href="group__complex.html#ga2">sqlo_bind_ref_cursor</a>(sth, <span class="stringliteral">":c1"</span>, &amp;st2h)) ||        (<a class="code" href="group__complex.html#ga187">sqlo_bind_by_name</a>(sth, <span class="stringliteral">":min_sal"</span>, SQLOT_FLT, &amp;sal, <span class="keyword">sizeof</span>(sal), 0, 0) ) ) {      error_exit(dbh, <span class="stringliteral">"sqlo_bind_by_name"</span>);    } <span class="keywordflow">else</span> {      <span class="comment">/* execute the PL/SQL block */</span>      <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__complex.html#ga194">sqlo_execute</a>(sth, 1))        error_exit(dbh, <span class="stringliteral">"sqlo_execute"</span>);    }    <span class="comment">/* execute the refcursor */</span>    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__complex.html#ga194">sqlo_execute</a>(st2h, 1)) {      error_exit(dbh, <span class="stringliteral">"sqlo_execute(ref)"</span>);    }    <span class="keywordflow">while</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> == (status = <a class="code" href="group__easy.html#ga167">sqlo_fetch</a>(st2h, 1))) {      v = <a class="code" href="group__easy.html#ga168">sqlo_values</a>(st2h, NULL, 1);      printf(<span class="stringliteral">"Name=%-8s Salary= %-6s\n"</span>, v[0], v[1]);    }        <span class="keywordflow">if</span> (status != <a class="code" href="group__constants.html#gga3a32">SQLO_NO_DATA</a>)      error_exit(dbh, <span class="stringliteral">"sqlo_fetch(st2)"</span>);    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__easy.html#ga172">sqlo_close</a>(sth))      error_exit(dbh, <span class="stringliteral">"sqlo_close(1)"</span>);    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__easy.html#ga172">sqlo_close</a>(st2h))      error_exit(dbh, <span class="stringliteral">"sqlo_close(2)"</span>);  } <span class="keywordflow">else</span> {    error_exit(dbh, <span class="stringliteral">"sqlo_prepare"</span>);  }  <span class="keywordflow">return</span> 1;}<span class="comment">/* $Id: ex17.c,v 1.3 2002/08/24 12:54:47 kpoitschke Exp $ */</span></pre></div> Example using bind variables: <div class="fragment"><pre><span class="comment">/* $Id: ex18.c,v 1.3 2002/08/24 12:54:47 kpoitschke Exp $ */</span><span class="preprocessor">#include &lt;stdio.h&gt;</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span><span class="preprocessor">#include "examples.h"</span><span class="keywordtype">int</span> select_refcursor2(<a class="code" href="group__typedefs.html#ga0">sqlo_db_handle_t</a> dbh, <span class="keywordtype">double</span> min_salary){  <a class="code" href="group__typedefs.html#ga1">sqlo_stmt_handle_t</a> sth = <a class="code" href="group__constants.html#gga5a49">SQLO_STH_INIT</a>;  <a class="code" href="group__typedefs.html#ga1">sqlo_stmt_handle_t</a> st2h;                     <span class="comment">/* handle of the ref cursor */</span>  <span class="keywordtype">double</span> sal = min_salary;  <span class="keywordtype">int</span> status;  <span class="keywordtype">char</span> name[30];  <span class="keywordtype">double</span> salary;  <span class="keywordtype">short</span> nind, sind;  CONST <span class="keywordtype">char</span> * stmt =     <span class="stringliteral">"BEGIN\n"</span>    <span class="stringliteral">"    OPEN :c1 FOR SELECT ENAME, SAL FROM EMP WHERE SAL &gt;= :min_sal ORDER BY 2,1;\n"</span>    <span class="stringliteral">"END;\n"</span>;  <span class="comment">/* parse the statement */</span>  <span class="keywordflow">if</span> ( 0 &lt;= (sth = <a class="code" href="group__complex.html#ga186">sqlo_prepare</a>(dbh, stmt))) {    <span class="comment">/* bind all variables */</span>    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> !=         (<a class="code" href="group__complex.html#ga187">sqlo_bind_by_name</a>(sth, <span class="stringliteral">":c1"</span>, SQLOT_RSET, &amp;st2h, 0, 0, 0)) ||        (<a class="code" href="group__complex.html#ga187">sqlo_bind_by_name</a>(sth, <span class="stringliteral">":min_sal"</span>, SQLOT_FLT, &amp;sal, <span class="keyword">sizeof</span>(sal), 0, 0) ) ) {      error_exit(dbh, <span class="stringliteral">"sqlo_bind_by_name"</span>);    } <span class="keywordflow">else</span> {      <span class="comment">/* execute the PL/SQL block */</span>      <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__complex.html#ga194">sqlo_execute</a>(sth, 1))        error_exit(dbh, <span class="stringliteral">"sqlo_execute"</span>);    }    <span class="comment">/* execute the second cursor */</span>    <span class="keywordflow">if</span>(<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__complex.html#ga194">sqlo_execute</a>(st2h, 1))      error_exit(dbh, <span class="stringliteral">"sqlo_execute"</span>);    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> !=         ( <a class="code" href="group__complex.html#ga192">sqlo_define_by_pos</a>(st2h, 1, SQLOT_STR, name, <span class="keyword">sizeof</span>(name), &amp;nind, 0, 0) ) ||        ( <a class="code" href="group__complex.html#ga192">sqlo_define_by_pos</a>(st2h, 2, SQLOT_FLT, &amp;salary, <span class="keyword">sizeof</span>(salary), &amp;sind, 0, 0) ) )      {        error_exit(dbh, <span class="stringliteral">"sqlo_define_by_pos"</span>);      }    <span class="keywordflow">while</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> == (status = <a class="code" href="group__easy.html#ga167">sqlo_fetch</a>(st2h, 1))) {      printf(<span class="stringliteral">"Name=%-8s Salary= %6.2f\n"</span>, name, salary);    }        <span class="keywordflow">if</span> (status != <a class="code" href="group__constants.html#gga3a32">SQLO_NO_DATA</a>)      error_exit(dbh, <span class="stringliteral">"sqlo_fetch(st2)"</span>);    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__easy.html#ga172">sqlo_close</a>(sth))      error_exit(dbh, <span class="stringliteral">"sqlo_close(1)"</span>);    <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__easy.html#ga172">sqlo_close</a>(st2h))      error_exit(dbh, <span class="stringliteral">"sqlo_close(2)"</span>);  } <span class="keywordflow">else</span> {    error_exit(dbh, <span class="stringliteral">"sqlo_prepare"</span>);  }  <span class="keywordflow">return</span> 1;}<span class="comment">/* $Id: ex18.c,v 1.3 2002/08/24 12:54:47 kpoitschke Exp $ */</span></pre></div> </dd></dl><dl compact><dt><b>Examples: </b></dt><dd><a class="el" href="ex17_8c-example.html#a48">ex17.c</a>.</dl><p>Referenced by <a class="el" href="sqlora_8c-source.html#l06481">sqlo_bind_by_name()</a>.    </td>  </tr></table><a class="anchor" name="ga5" doxytag="sqlora.h::sqlo_define_by_pos" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> int sqlo_define_by_pos </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="group__typedefs.html#ga1">sqlo_stmt_handle_t</a>&nbsp;</td>          <td class="mdname" nowrap> <em>sth</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>value_pos</em>, </td>

⌨️ 快捷键说明

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