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

📄 ex15_8c-example.html

📁 Linux下的操作oracle数据库的连接库
💻 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&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <a class="qindex" href="examples.html">Examples</a></div><h1>ex15.c</h1>Example for selecting blob data into a buffer <div class="fragment"><pre><span class="comment">/* $Id: ex15.c,v 1.6 2004/01/03 16:48:19 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 &lt;string.h&gt;</span><span class="preprocessor">#include "examples.h"</span><span class="keywordtype">int</span> select_from_blob_table(<a class="code" href="group__typedefs.html#ga0">sqlo_db_handle_t</a> dbh, <span class="keywordtype">int</span> key ){  <span class="keywordtype">char</span> * stmt =     <span class="stringliteral">"SELECT KEY, CDATA FROM T_SQLORA_BLOB WHERE KEY = :1"</span>;  <span class="keywordtype">int</span> status;  <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="keywordtype">int</span> k = key;  <span class="keywordtype">char</span> * data;  <span class="keywordtype">short</span> ind;  <span class="keywordtype">char</span> cmp_data[MAX_BLOB_BUFFER_DATA];        <span class="comment">/* our buffer to compare the result */</span>  <a class="code" href="group__typedefs.html#ga2">sqlo_lob_desc_t</a> loblp;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> loblen;  printf(<span class="stringliteral">"Query CLOB\n"</span>);  fillbuf2(cmp_data, MAX_BLOB_BUFFER_DATA); <span class="comment">/* our reference data */</span>  <span class="comment">/* parse */</span>  <span class="keywordflow">if</span> (0 &gt; (sth = <a name="a27"></a><a class="code" href="group__complex.html#ga186">sqlo_prepare</a>(dbh, stmt)))    error_exit(dbh, <span class="stringliteral">"sqlo_prepare"</span>);  <span class="comment">/* bind input */</span>  <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> !=       (<a name="a28"></a><a class="code" href="group__complex.html#ga190">sqlo_bind_by_pos</a>(sth, 1, SQLOT_INT, &amp;k, <span class="keyword">sizeof</span>(k), 0, 0))) {      error_exit(dbh, <span class="stringliteral">"sqlo_bind_by_pos"</span>);    }        <span class="comment">/* allocate a lob descriptor */</span>  <span class="keywordflow">if</span> (0 &gt; <a name="a29"></a><a class="code" href="group__lob.html#ga205">sqlo_alloc_lob_desc</a>(dbh, &amp;loblp))    error_exit(dbh, <span class="stringliteral">"sqlo_alloc_lob_desc"</span>);  <span class="comment">/* define output */</span>  <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> !=       (<a name="a30"></a><a class="code" href="group__complex.html#ga192">sqlo_define_by_pos</a>(sth, 1, SQLOT_INT, &amp;k, <span class="keyword">sizeof</span>(k), 0, 0, 0)) ||      (<a class="code" href="group__complex.html#ga192">sqlo_define_by_pos</a>(sth, 2, SQLOT_CLOB, &amp;loblp, 0, &amp;ind, 0, 0))) {      <a name="a31"></a><a class="code" href="group__lob.html#ga206">sqlo_free_lob_desc</a>(dbh, &amp;loblp);      error_exit(dbh, <span class="stringliteral">"sqlo_define_by_pos2"</span>);    }        <span class="comment">/* execute */</span>  status = <a name="a32"></a><a class="code" href="group__complex.html#ga194">sqlo_execute</a>(sth, 1);  <span class="keywordflow">if</span> (<a class="code" href="group__constants.html#gga3a25">SQLO_SUCCESS</a> != status)  {    <a class="code" href="group__lob.html#ga206">sqlo_free_lob_desc</a>(dbh, &amp;loblp);    error_exit(dbh, <span class="stringliteral">"sqlo_execute"</span>);  }  <span class="keywordflow">if</span> (ind != <a class="code" href="group__constants.html#gga5a47">SQLO_NULL_IND</a>)     {      status = <a name="a33"></a><a class="code" href="group__lob.html#ga210">sqlo_lob_get_length</a>(dbh, loblp, &amp;loblen);      <span class="keywordflow">if</span> ( 0 &gt; status) {        <a class="code" href="group__lob.html#ga206">sqlo_free_lob_desc</a>(dbh, &amp;loblp);        error_exit(dbh, <span class="stringliteral">"sqlo_free_lob_desc"</span>);      }      <span class="keywordflow">if</span> (loblen != MAX_BLOB_BUFFER_DATA) {        printf(<span class="stringliteral">"Invalid LOB size. Expected %d, got %d\n"</span>, MAX_BLOB_BUFFER_DATA,               loblen);        <a class="code" href="group__lob.html#ga206">sqlo_free_lob_desc</a>(dbh, &amp;loblp);        <a name="a34"></a><a class="code" href="group__easy.html#ga172">sqlo_close</a>(sth);        <span class="keywordflow">return</span> 0;      }      <span class="comment">/* allocate the buffer for the data */</span>      data = malloc(loblen * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));      <span class="keywordflow">if</span> (!data) {          printf(<span class="stringliteral">"FATAL: malloc error at %d\n"</span>, __LINE__);          <a class="code" href="group__lob.html#ga206">sqlo_free_lob_desc</a>(dbh, &amp;loblp);          exit(EXIT_FAILURE);      }      <span class="comment">/* read the data into the buffer */</span>      status = <a name="a35"></a><a class="code" href="group__lob.html#ga211">sqlo_lob_read_buffer</a>(dbh, loblp, loblen, data, loblen);      <span class="keywordflow">if</span> ( 0 &gt; status)  {          printf(<span class="stringliteral">"sqlo_lob_read_buffer failed: %s\n"</span>, <a name="a36"></a><a class="code" href="group__error.html#ga158">sqlo_geterror</a>(dbh) );          <a class="code" href="group__lob.html#ga206">sqlo_free_lob_desc</a>(dbh, &amp;loblp);          error_exit(dbh, <span class="stringliteral">"sqlo_lob_read_buffer"</span>);        }      printf(<span class="stringliteral">"Compare CLOB\n"</span>);      <span class="comment">/* compare with our reference data */</span>      <span class="keywordflow">if</span> (memcmp(data, &amp;cmp_data, MAX_BLOB_BUFFER_DATA)) {        <span class="keywordtype">int</span> i;        printf(<span class="stringliteral">"LOB read is different from LOB written\n"</span>);        <span class="keywordflow">for</span> (i = 0; i &lt;= MAX_BLOB_BUFFER_DATA; ++i) {          <span class="keywordflow">if</span> (data[i] != cmp_data[i])            printf(<span class="stringliteral">"diff at pos %d\n"</span>, i);        }      }    } <span class="keywordflow">else</span> {      printf(<span class="stringliteral">"LOB is NULL\n"</span>);      <span class="keywordflow">return</span> 0;    }  <a class="code" href="group__lob.html#ga206">sqlo_free_lob_desc</a>(dbh, &amp;loblp);  <a class="code" href="group__easy.html#ga172">sqlo_close</a>(sth);  <span class="keywordflow">return</span> (1);}<span class="comment">/* $Id */</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 + -