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

📄 sqlora_8c-source.html

📁 Linux下的操作oracle数据库的连接库
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00357 <a name="l00367"></a><a class="code" href="sqlora_8c.html#a19">00367</a> <span class="preprocessor">#define CHECK_STHANDLE(p_stp, p_sth, p_func, p_errval)          \</span>00368 <span class="preprocessor">{                                                               \</span>00369 <span class="preprocessor">  if ( NULL == (p_stp = _sth2stp( p_sth, p_func ) ) ||          \</span>00370 <span class="preprocessor">       !p_stp-&gt;used ) {                                         \</span>00371 <span class="preprocessor">    return p_errval;                                            \</span>00372 <span class="preprocessor">  }                                                             \</span>00373 <span class="preprocessor">}</span>00374 <span class="preprocessor"></span>00375 00376 00377 <a name="l00389"></a><a class="code" href="sqlora_8c.html#a20">00389</a> <span class="preprocessor">#define CHECK_OCI_STATUS(p_dbp, p_stat, p_action, p_object)      \</span>00390 <span class="preprocessor">{                                                                \</span>00391 <span class="preprocessor">  sqlo_db_struct_ptr_t l_dbp = p_dbp;                            \</span>00392 <span class="preprocessor">  int l_stat = p_stat;                                           \</span>00393 <span class="preprocessor">  (l_dbp)-&gt;status = p_stat;                                      \</span>00394 <span class="preprocessor">  TRACE(4, fprintf(_get_trace_fp(l_dbp),                         \</span>00395 <span class="preprocessor">                   "CHECK_OCI_STATUS[%u]: %d at %d\n",           \</span>00396 <span class="preprocessor">                   l_dbp-&gt;dbh, l_stat, __LINE__););              \</span>00397 <span class="preprocessor">  if (OCI_SUCCESS != l_stat &amp;&amp;                                   \</span>00398 <span class="preprocessor">    OCI_STILL_EXECUTING != l_stat) {                             \</span>00399 <span class="preprocessor">    _save_oci_status(l_dbp, p_action, p_object, __LINE__);       \</span>00400 <span class="preprocessor">  }                                                              \</span>00401 <span class="preprocessor">}</span>00402 <span class="preprocessor"></span>00403 00404 <a name="l00416"></a><a class="code" href="sqlora_8c.html#a21">00416</a> <span class="preprocessor">#define CHECK_OCI_STATUS_RETURN(p_dbp, p_stat, p_action, p_object) \</span>00417 <span class="preprocessor">{                                                                  \</span>00418 <span class="preprocessor">  sqlo_db_struct_ptr_t l_dbp2 = p_dbp;                             \</span>00419 <span class="preprocessor">  int l_stat2 = p_stat;                                            \</span>00420 <span class="preprocessor">  CHECK_OCI_STATUS(l_dbp2, l_stat2, p_action, p_object);           \</span>00421 <span class="preprocessor">  if (OCI_SUCCESS != l_stat2) {                                    \</span>00422 <span class="preprocessor">    UNLOCK_ALL;                                                    \</span>00423 <span class="preprocessor">    return (l_stat2);                                              \</span>00424 <span class="preprocessor">  }                                                                \</span>00425 <span class="preprocessor">}</span>00426 <span class="preprocessor"></span>00427 00428 <a name="l00435"></a><a class="code" href="sqlora_8c.html#a22">00435</a> <span class="preprocessor">#define VALID_DBH_RANGE(_dbh) ( _dbh &gt;= 0 &amp;&amp; _dbh &lt; (int)_dbv_size )</span>00436 <span class="preprocessor"></span>00437 00438 <span class="comment">/* If we have usleep we wait this amount of microseconds in a </span>00439 <span class="comment"> * OCI_STILL_EXECUTING loop</span>00440 <span class="comment"> */</span>00441 <span class="preprocessor">#ifdef HAVE_USLEEP</span>00442 <span class="preprocessor"></span><span class="preprocessor">#  define SQLO_USLEEP usleep(1000)</span>00443 <span class="preprocessor"></span><span class="preprocessor">#else</span>00444 <span class="preprocessor"></span><span class="preprocessor">#  define SQLO_USLEEP</span>00445 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00446 <span class="preprocessor"></span>00447 00448 00449 <span class="comment">/*-------------------------------------------------------------------------</span>00450 <span class="comment"> * TYPES</span>00451 <span class="comment"> *-----------------------------------------------------------------------*/</span>00452 <a name="l00456"></a><a class="code" href="sqlora_8c.html#a28">00456</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="sqlora_8c.html#a28">bool_t</a>;00457 00458 00459 <a name="l00463"></a><a class="code" href="sqlora_8c.html#a220">00463</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {00464   <a class="code" href="sqlora_8c.html#a220a79">DEFAULT</a>   = 0,                00465   <a class="code" href="sqlora_8c.html#a220a80">REFCURSOR</a> = 1,                00466   <a class="code" href="sqlora_8c.html#a220a81">NTABLE</a>    = 2                 00467 } <a class="code" href="sqlora_8c.html#a220">sqlo_cursor_type_e</a>;00468 00469 00470 <a name="l00474"></a><a class="code" href="struct__sqlo__db__struct.html">00474</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__sqlo__db__struct.html">_sqlo_db_struct</a> {<a name="l00475"></a><a class="code" href="struct__sqlo__db__struct.html#o0">00475</a>   <span class="keyword">struct </span><a class="code" href="struct__sqlo__stmt__struct.html">_sqlo_stmt_struct</a> *<a class="code" href="struct__sqlo__db__struct.html#o0">stmtv</a>;    <a name="l00476"></a><a class="code" href="struct__sqlo__db__struct.html#o1">00476</a>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__sqlo__db__struct.html#o1">stmtv_size</a>;        <a name="l00478"></a><a class="code" href="struct__sqlo__db__struct.html#o2">00478</a>   ub4 <a class="code" href="struct__sqlo__db__struct.html#o2">dbh</a>;                        <a name="l00481"></a><a class="code" href="struct__sqlo__db__struct.html#o3">00481</a>   OCIServer * <a class="code" href="struct__sqlo__db__struct.html#o3">srvhp</a>;                                     <a name="l00483"></a><a class="code" href="struct__sqlo__db__struct.html#o4">00483</a>   OCIError * <a class="code" href="struct__sqlo__db__struct.html#o4">errhp</a>;                                       <a name="l00485"></a><a class="code" href="struct__sqlo__db__struct.html#o5">00485</a>   OCISvcCtx * <a class="code" href="struct__sqlo__db__struct.html#o5">svchp</a>;                            <a name="l00487"></a><a class="code" href="struct__sqlo__db__struct.html#o6">00487</a>   OCISession * <a class="code" href="struct__sqlo__db__struct.html#o6">authp</a>;                     <a name="l00489"></a><a class="code" href="struct__sqlo__db__struct.html#o7">00489</a>   OCIEnv * <a class="code" href="struct__sqlo__db__struct.html#o7">envhp</a>;               <a name="l00491"></a><a class="code" href="struct__sqlo__db__struct.html#o8">00491</a>   <span class="keywordtype">char</span> * <a class="code" href="struct__sqlo__db__struct.html#o8">tnsname</a>;                             <a name="l00493"></a><a class="code" href="struct__sqlo__db__struct.html#o9">00493</a>   <span class="keywordtype">int</span> <a class="code" href="struct__sqlo__db__struct.html#o9">status</a>;                                        <a name="l00495"></a><a class="code" href="struct__sqlo__db__struct.html#o10">00495</a>   <span class="keywordtype">char</span> <a class="code" href="struct__sqlo__db__struct.html#o10">errmsg</a>[<a class="code" href="sqlora_8c.html#a219a74">SQLO_MAX_ERRMSG_LEN</a>+1];              <a name="l00497"></a><a class="code" href="struct__sqlo__db__struct.html#o11">00497</a>   sb4 <a class="code" href="struct__sqlo__db__struct.html#o11">errcode</a>;                                 <a name="l00500"></a><a class="code" href="struct__sqlo__db__struct.html#o12">00500</a>   OCIStmt * <a class="code" href="struct__sqlo__db__struct.html#o12">stmthp</a>;               00505   <span class="comment">/* CONTROL FLAGS */</span><a name="l00506"></a><a class="code" href="struct__sqlo__db__struct.html#o13">00506</a>   <a class="code" href="sqlora_8c.html#a28">bool_t</a> <a class="code" href="struct__sqlo__db__struct.html#o13">used</a>;                    <a name="l00507"></a><a class="code" href="struct__sqlo__db__struct.html#o14">00507</a>   <a class="code" href="sqlora_8c.html#a28">bool_t</a> <a class="code" href="struct__sqlo__db__struct.html#o14">attached</a>;                <a name="l00508"></a><a class="code" href="struct__sqlo__db__struct.html#o15">00508</a>   <a class="code" href="sqlora_8c.html#a28">bool_t</a> <a class="code" href="struct__sqlo__db__struct.html#o15">session_created</a>;         <a name="l00510"></a><a class="code" href="struct__sqlo__db__struct.html#o16">00510</a>   FILE * <a class="code" href="struct__sqlo__db__struct.html#o16">trace_fp</a>;              <a name="l00512"></a><a class="code" href="struct__sqlo__db__struct.html#o17">00512</a>   sqlo_thread_t <a class="code" href="struct__sqlo__db__struct.html#o17">thread_id</a>; 00514 } <a class="code" href="struct__sqlo__db__struct.html">sqlo_db_struct_t</a>, * <a class="code" href="struct__sqlo__db__struct.html">sqlo_db_struct_ptr_t</a>;00515 00516 00517 <a name="l00521"></a><a class="code" href="sqlora_8c.html#a31">00521</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="struct__sqlo__db__struct.html">sqlo_db_struct_t</a> * <a class="code" href="struct__sqlo__db__struct.html">const_sqlo_db_struct_ptr_t</a>;00522 00523 00524 <a name="l00530"></a><a class="code" href="struct__sqlo__col__struct.html">00530</a> <span class="keyword">typedef</span> <span class="keyword">struct  </span><a class="code" href="struct__sqlo__col__struct.html">_sqlo_col_struct</a> {00531 <a name="l00532"></a><a class="code" href="struct__sqlo__col__struct.html#o0">00532</a>   <span class="keywordtype">unsigned</span> <a class="code" href="struct__sqlo__col__struct.html#o0">pos</a>;                <a name="l00536"></a><a class="code" href="struct__sqlo__col__struct.html#o1">00536</a>   ub2  <a class="code" href="struct__sqlo__col__struct.html#o1">dtype</a>;                   <a name="l00538"></a><a class="code" href="struct__sqlo__col__struct.html#o2">00538</a>   <span class="keywordtype">char</span> * <a class="code" href="struct__sqlo__col__struct.html#o2">col_name</a>;              <a name="l00540"></a><a class="code" href="struct__sqlo__col__struct.html#o3">00540</a>   <span class="keywordtype">unsigned</span> <a class="code" href="struct__sqlo__col__struct.html#o3">col_name_size</a>;       <a name="l00542"></a><a class="code" href="struct__sqlo__col__struct.html#o4">00542</a>   ub2  <a class="code" href="struct__sqlo__col__struct.html#o4">dbsize</a>;                  <a name="l00544"></a><a class="code" href="struct__sqlo__col__struct.html#o5">00544</a>   ub1  <a class="code" href="struct__sqlo__col__struct.html#o5">prec</a>;                    00546   ub1  scale;                   <a name="l00548"></a><a class="code" href="struct__sqlo__col__struct.html#o7">00548</a>   ub1  <a class="code" href="struct__sqlo__col__struct.html#o7">nullok</a>;                  <a name="l00550"></a><a class="code" href="struct__sqlo__col__struct.html#o8">00550</a>   <span class="keyword">struct </span>_sqlo_stmt_struct_t * <a class="code" href="struct__sqlo__col__struct.html#o8">stp</a>;    00552 } <a class="code" href="struct__sqlo__col__struct.html">sqlo_col_struct_t</a>, * <a class="code" href="struct__sqlo__col__struct.html">sqlo_col_struct_ptr_t</a>;00553 00554 00555 <a name="l00561"></a><a class="code" href="struct__sqlo__stmt__struct.html">00561</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__sqlo__stmt__struct.html">_sqlo_stmt_struct</a> {<a name="l00562"></a><a class="code" href="struct__sqlo__stmt__struct.html#o0">00562</a>   ub4 <a class="code" href="struct__sqlo__stmt__struct.html#o0">sth</a>;                         <a name="l00565"></a><a class="code" href="struct__sqlo__stmt__struct.html#o1">00565</a>   <a class="code" href="sqlora_8c.html#a30">sqlo_db_struct_ptr_t</a>  <a class="code" href="struct__sqlo__stmt__struct.html#o1">dbp</a>;               <a name="l00567"></a><a class="code" href="struct__sqlo__stmt__struct.html#o2">00567</a>   OCIStmt * stmthp;              <a name="l00570"></a><a class="code" href="struct__sqlo__stmt__struct.html#o3">00570</a>   <span class="keywordtype">char</span> * <a class="code" href="struct__sqlo__stmt__struct.html#o3">stmt</a>;                   <a name="l00572"></a><a class="code" href="struct__sqlo__stmt__struct.html#o4">00572</a>   <span class="keywordtype">unsigned</span> <a class="code" href="struct__sqlo__stmt__struct.html#o4">stmt_size</a>;           00574   <span class="comment">/* INPUT */</span><a name="l00575"></a><a class="code" href="struct__sqlo__stmt__struct.html#o5">00575</a>   OCIBind ** <a class="code" href="struct__sqlo__stmt__struct.html#o5">bindpv</a>;             <a name="l00577"></a><a class="code" href="struct__sqlo__stmt__struct.html#o6">00577</a>   <span class="keywordtype">unsigned</span> <a class="code" href="struct__sqlo__stmt__struct.html#o6">num_bindpv</a>;          <a name="l00579"></a><a class="code" href="struct__sqlo__stmt__struct.html#o7">00579</a>   <span class="keywordtype">unsigned</span> <a class="code" href="struct__sqlo__stmt__struct.html#o7">bindpv_size</a>;         <a name="l00581"></a><a class="code" href="struct__sqlo__stmt__struct.html#o8">00581</a>   ub2 <a class="code" href="struct__sqlo__stmt__struct.html#o8">stype</a>;                    <a name="l00583"></a><a class="code" href="struct__sqlo__stmt__struct.html#o9">00583</a>   <span class="keywordtype">short</span> * <a class="code" href="struct__sqlo__stmt__struct.html#o9">indpv</a>;                00585   <span class="comment">/* OUTPUT */</span><a name="l00586"></a><a class="code" href="struct__sqlo__stmt__struct.html#o10">00586</a>   <a class="code" href="struct__sqlo__col__struct.html">sqlo_col_struct_t</a> * <a class="code" href="struct__sqlo__stmt__struct.html#o10">ocolsv</a>;    <a name="l00588"></a><a class="code" href="struct__sqlo__stmt__struct.html#o11">00588</a>   OCIDefine ** <a class="code" href="struct__sqlo__stmt__struct.html#o11">defnpv</a>;           <a name="l00590"></a><a class="code" href="struct__sqlo__stmt__struct.html#o12">00590</a>   <span class="keywordtype">unsigned</span> <a class="code" href="struct__sqlo__stmt__struct.html#o12">num_defnpv</a>;          <a name="l00592"></a><a class="code" href="struct__sqlo__stmt__struct.html#o13">00592</a>   <span class="keywordtype">unsigned</span> <a class="code" href="struct__sqlo__stmt__struct.html#o13">defnpv_size</a>;         <a name="l00597"></a><a class="code" href="struct__sqlo__stmt__struct.html#o14">00597</a>   <span class="keywordtype">char</span> ** <a class="code" href="struct__sqlo__stmt__struct.html#o14">outv</a>;                 

⌨️ 快捷键说明

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