📄 sqlora_8c-source.html
字号:
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->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)->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->dbh, l_stat, __LINE__);); \</span>00397 <span class="preprocessor"> if (OCI_SUCCESS != l_stat && \</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 >= 0 && _dbh < (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 + -