📄 sqlora_8c-source.html
字号:
00140 <a name="l00146"></a><a class="code" href="sqlora_8c.html#a8">00146</a> <span class="preprocessor">#define EXEC_WHEN_THREADING(_cmd) \</span>00147 <span class="preprocessor"> if (THREADS_ENABLED && OCI_THREADED == _oci_init_mode) { _cmd }</span>00148 <span class="preprocessor"></span><a name="l00153"></a><a class="code" href="sqlora_8c.html#a9">00153</a> <span class="preprocessor">#define UNLOCK_ALL EXEC_WHEN_THREADING(_dbv_unlock(); _env_unlock(); _init_unlock(); )</span>00154 <span class="preprocessor"></span>00155 <span class="preprocessor">#define ENCODE_STH(_sth, _dbh) ((int)(_dbh << (sizeof(sqlo_stmt_handle_t)/2 * 8) | _sth))</span>00156 <span class="preprocessor"></span>00157 <span class="preprocessor">#define DECODE_STH(_sth) ((ub4) _sth & 0x0000ffff)</span>00158 <span class="preprocessor"></span><span class="preprocessor">#define DECODE_DBH(_sth) ((ub4) (_sth >> (sizeof(sqlo_stmt_handle_t)/2 * 8)) & 0x007fff)</span>00159 <span class="preprocessor"></span>00160 <span class="comment">/*-------------------------------------------------------------------------</span>00161 <span class="comment"> * CONSTANTS</span>00162 <span class="comment"> *-----------------------------------------------------------------------*/</span><a name="l00166"></a><a class="code" href="sqlora_8c.html#a219">00166</a> <span class="keyword">enum</span> <a class="code" href="sqlora_8c.html#a219">_sqlora_constants</a> { 00167 00168 <a class="code" href="sqlora_8c.html#a219a66">SQLO_MAX_DB</a> = 0x00007fff, 00170 <a class="code" href="sqlora_8c.html#a219a67">SQLO_MAX_CURSORS</a> = 0x0000ffff, 00172 <span class="comment">/* changed the MIN_ sizes for better testing (to make sure we do some reallocations) */</span>00173 <a class="code" href="sqlora_8c.html#a219a68">MIN_BINDP</a> = 1 <span class="comment">/*64*/</span>, 00177 <a class="code" href="sqlora_8c.html#a219a69">MIN_DEFNP</a> = 1 <span class="comment">/*32*/</span>, 00181 <a class="code" href="sqlora_8c.html#a219a70">MIN_OBUF_SIZE</a> = 1 <span class="comment">/*32*/</span>, 00185 <a class="code" href="sqlora_8c.html#a219a71">MIN_COL_NAME_LEN</a> = 1 <span class="comment">/*31*/</span>, 00187 <a class="code" href="sqlora_8c.html#a219a72">MIN_STMT_SIZE</a> = 10 <span class="comment">/* 1024*/</span>, 00189 <a class="code" href="sqlora_8c.html#a219a73">DEF_PREFETCH_ROWS</a> = 100, 00191 <a class="code" href="sqlora_8c.html#a219a74">SQLO_MAX_ERRMSG_LEN</a> = 2047, 00193 <a class="code" href="sqlora_8c.html#a219a75">MAX_PATH_LEN</a> = 512, 00195 <a class="code" href="sqlora_8c.html#a219a76">MAX_VNAME_LEN</a> = 255, 00197 <a class="code" href="sqlora_8c.html#a219a77">MAX_LONG_SIZE</a> = (1024*64), 00199 <span class="preprocessor">#ifdef LIBSQLORA8_TRACE_ENABLED</span>00200 <span class="preprocessor"></span> <a class="code" href="sqlora_8c.html#a219a78">TRACE_ENABLED</a> = 1 00201 <span class="preprocessor">#else</span>00202 <span class="preprocessor"></span> <a class="code" href="sqlora_8c.html#a219a78">TRACE_ENABLED</a> = 0 00203 <span class="preprocessor">#endif</span>00204 <span class="preprocessor"></span>00205 00206 };00207 00208 00209 <span class="comment">/*-------------------------------------------------------------------------</span>00210 <span class="comment"> * MACROS</span>00211 <span class="comment"> *-----------------------------------------------------------------------*/</span>00212 <span class="preprocessor">#undef TRUE</span>00213 <span class="preprocessor"></span><span class="preprocessor">#undef FALSE</span>00214 <span class="preprocessor"></span><a name="l00218"></a><a class="code" href="sqlora_8c.html#a13">00218</a> <span class="preprocessor">#define TRUE ((1 == 1))</span>00219 <span class="preprocessor"></span><a name="l00223"></a><a class="code" href="sqlora_8c.html#a14">00223</a> <span class="preprocessor">#define FALSE (!TRUE)</span>00224 <span class="preprocessor"></span>00225 00226 <a name="l00238"></a><a class="code" href="sqlora_8c.html#a15">00238</a> <span class="preprocessor">#define TRACE(p_trace_level, p_cmd) \</span>00239 <span class="preprocessor"> if ( TRACE_ENABLED && \</span>00240 <span class="preprocessor"> (NULL != _trace_fp) && \</span>00241 <span class="preprocessor"> (_trace_level >= p_trace_level) ) { \</span>00242 <span class="preprocessor"> { p_cmd } \</span>00243 <span class="preprocessor"> (void) fflush(_trace_fp); \</span>00244 <span class="preprocessor"> }</span>00245 <span class="preprocessor"></span>00246 00247 <a name="l00263"></a><a class="code" href="sqlora_8c.html#a16">00263</a> <span class="preprocessor">#define ERRMALLOC(p_dbp, p_ptr, p_len, p_func, p_retcode) \</span>00264 <span class="preprocessor">{ \</span>00265 <span class="preprocessor"> sqlo_db_struct_ptr_t l_dbp = p_dbp; \</span>00266 <span class="preprocessor"> int l_len = p_len; \</span>00267 <span class="preprocessor"> CONST char * l_func = p_func; \</span>00268 <span class="preprocessor"> int l_retcode = p_retcode; \</span>00269 <span class="preprocessor"> (p_ptr) = MALLOC((l_len)); \</span>00270 <span class="preprocessor"> if ( !(p_ptr) ) { \</span>00271 <span class="preprocessor"> if ( l_dbp ) { \</span>00272 <span class="preprocessor"> sprintf( (l_dbp)->errmsg, \</span>00273 <span class="preprocessor"> "Cannot malloc %u bytes in %s\n", \</span>00274 <span class="preprocessor"> (unsigned int)(l_len), l_func); \</span>00275 <span class="preprocessor"> TRACE(1, (void) fputs((l_dbp)->errmsg, \</span>00276 <span class="preprocessor"> _get_trace_fp(l_dbp));); \</span>00277 <span class="preprocessor"> } \</span>00278 <span class="preprocessor"> l_dbp->status = l_retcode; \</span>00279 <span class="preprocessor"> </span><span class="comment">/* make sure we release all locks */</span> \00280 UNLOCK_ALL; \00281 return l_retcode; \00282 } \00283 TRACE(4, fprintf( _get_trace_fp(l_dbp), \00284 "Allocated %u bytes in %s\n", \00285 (unsigned int) (l_len), l_func);); \00286 }00287 00288 00289 <a name="l00304"></a><a class="code" href="sqlora_8c.html#a17">00304</a> <span class="preprocessor">#define ERREALLOC(p_dbp, p_ptr, p_len, p_func, p_retcode) \</span>00305 <span class="preprocessor">{ \</span>00306 <span class="preprocessor"> sqlo_db_struct_ptr_t l_dbp = p_dbp; \</span>00307 <span class="preprocessor"> int l_len = p_len; \</span>00308 <span class="preprocessor"> CONST char * l_func = p_func; \</span>00309 <span class="preprocessor"> int l_retcode = p_retcode; \</span>00310 <span class="preprocessor"> (p_ptr) = REALLOC((p_ptr), (l_len)); \</span>00311 <span class="preprocessor"> if ( !(p_ptr) ) { \</span>00312 <span class="preprocessor"> if ( l_dbp ) { \</span>00313 <span class="preprocessor"> sprintf( (l_dbp)->errmsg, \</span>00314 <span class="preprocessor"> "Cannot realloc %u bytes in %s\n", \</span>00315 <span class="preprocessor"> (unsigned int)(l_len), l_func); \</span>00316 <span class="preprocessor"> TRACE( 1, (void) fputs((l_dbp)->errmsg, \</span>00317 <span class="preprocessor"> _get_trace_fp(l_dbp));); \</span>00318 <span class="preprocessor"> } \</span>00319 <span class="preprocessor"> </span><span class="comment">/* make sure we release all locks */</span> \00320 l_dbp->status = p_retcode; \00321 UNLOCK_ALL; \00322 return l_retcode; \00323 } \00324 TRACE(4, fprintf(_get_trace_fp(l_dbp), \00325 "Reallocated %u bytes in %s\n", \00326 (unsigned int)(l_len), l_func);); \00327 }00328 00329 00330 <a name="l00340"></a><a class="code" href="sqlora_8c.html#a18">00340</a> <span class="preprocessor">#define CHECK_DBHANDLE(p_dbp, p_dbh, p_func, p_errval) \</span>00341 <span class="preprocessor">{ \</span>00342 <span class="preprocessor"> int l_dbh = p_dbh; \</span>00343 <span class="preprocessor"> CONST char * l_func = p_func; \</span>00344 <span class="preprocessor"> if ( !VALID_DBH_RANGE(l_dbh) || \</span>00345 <span class="preprocessor"> !_dbv[ l_dbh ] || \</span>00346 <span class="preprocessor"> !_dbv[ l_dbh ]->used) { \</span>00347 <span class="preprocessor"> TRACE(1, fprintf(_trace_fp, \</span>00348 <span class="preprocessor"> "Invalid Database handle %d in %s\n", \</span>00349 <span class="preprocessor"> l_dbh, l_func);); \</span>00350 <span class="preprocessor"> </span><span class="comment">/* make sure we release all locks */</span> \00351 UNLOCK_ALL; \00352 return (p_errval); \00353 } \00354 p_dbp = _dbv[ l_dbh ]; \00355 }00356
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -