📄 ex9_8c-example.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>libsqlora8: Example Documentation</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.6 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <a class="qindex" href="examples.html">Examples</a></div><h1>ex9.c</h1>Example for calling PL/SQL blocks. <div class="fragment"><pre><span class="comment">/* $Id: ex9.c,v 1.5 2002/08/24 12:54:47 kpoitschke Exp $ */</span><span class="preprocessor">#include <stdio.h></span><span class="preprocessor">#include <stdlib.h></span><span class="preprocessor">#include "examples.h"</span><span class="keyword">static</span> <span class="keywordtype">void</span> create_sp __P((<a class="code" href="group__typedefs.html#ga0">sqlo_db_handle_t</a> dbh));<span class="keywordtype">int</span> call_plsql(<a class="code" href="group__typedefs.html#ga0">sqlo_db_handle_t</a> dbh){ <span class="keywordtype">double</span> ip1; <span class="keywordtype">int</span> ip2; <span class="keywordtype">char</span> op[80]; <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>; <span class="comment">/* the stored procecdure call */</span> <span class="keywordtype">char</span> * stmt = <span class="stringliteral">"BEGIN\n"</span> <span class="stringliteral">" EX9(:ip1, :ip2, :op);\n"</span> <span class="stringliteral">"END;\n"</span>; create_sp(dbh); <span class="comment">/* create the test stored procedure */</span> ip1 = 1.5; ip2 = 20; <span class="comment">/* parse the statement */</span> <span class="keywordflow">if</span> ( 0 <= (sth = <a name="a80"></a><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 name="a81"></a><a class="code" href="group__complex.html#ga187">sqlo_bind_by_name</a>(sth, <span class="stringliteral">":ip1"</span>, SQLOT_FLT, &ip1, <span class="keyword">sizeof</span>(ip1), 0, 0) || <a class="code" href="group__complex.html#ga187">sqlo_bind_by_name</a>(sth, <span class="stringliteral">":ip2"</span>, SQLOT_INT, &ip2, <span class="keyword">sizeof</span>(ip2), 0, 0) || <a class="code" href="group__complex.html#ga187">sqlo_bind_by_name</a>(sth, <span class="stringliteral">":op"</span>, SQLOT_STR, &op, <span class="keyword">sizeof</span>(op), 0, 0) )) { error_exit(dbh, <span class="stringliteral">"sqlo_bind_by_name"</span>); } <span class="keywordflow">else</span> { <span class="comment">/* execute the call */</span> <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a name="a82"></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">/* print the result */</span> <span class="keywordflow">if</span> (atof(op) != (ip1 + ip2)) printf(<span class="stringliteral">"Stored procudure returned wrong result %s, expected %6.2f\n"</span>, op, (ip1 + ip2)); <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a name="a83"></a><a class="code" href="group__easy.html#ga172">sqlo_close</a>(sth)) error_exit(dbh, <span class="stringliteral">"sqlo_execute"</span>); } <span class="keywordflow">else</span> { error_exit(dbh, <span class="stringliteral">"sqlo_prepare"</span>); } <span class="keywordflow">if</span> ( 0 > <a name="a84"></a><a class="code" href="group__easy.html#ga163">sqlo_exec</a>(dbh, <span class="stringliteral">"DROP PROCEDURE EX9"</span>)) error_exit(dbh, <span class="stringliteral">"sqlo_exec"</span>); <span class="keywordflow">return</span> 1;}<span class="comment">/* creates the stored procedure used above */</span><span class="keyword">static</span> <span class="keywordtype">void</span>create_sp(<a class="code" href="group__typedefs.html#ga0">sqlo_db_handle_t</a> dbh){ <span class="keywordtype">char</span> * stmt = <span class="stringliteral">"CREATE OR REPLACE PROCEDURE EX9(ipNum1 IN NUMBER, ipNum2 IN NUMBER, opStr OUT VARCHAR)\n"</span> <span class="stringliteral">"IS\n"</span> <span class="stringliteral">"BEGIN\n"</span> <span class="stringliteral">" opStr := TO_CHAR(ipNum1 + ipNum2);\n"</span> <span class="stringliteral">"END;\n"</span>; <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != <a class="code" href="group__easy.html#ga163">sqlo_exec</a>(dbh, stmt)) error_exit(dbh, stmt);}<span class="comment">/* $Id: ex9.c,v 1.5 2002/08/24 12:54:47 kpoitschke Exp $ */</span></pre></div> <hr size="1"><address style="align: right;"><small>Generated on Sun Jun 13 04:51:41 2004 for libsqlora8 by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.6 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -