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

📄 element_8c-source.html

📁 ORACLE编程的好东西,纯C写的OCI封装.很好用,支持数据池.
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00364"></a>00364 {<a name="l00365"></a>00365     <span class="keywordtype">boolean</span> res = FALSE;<a name="l00366"></a>00366 <a name="l00367"></a>00367     <span class="keywordflow">if</span> (elem-&gt;<a class="code" href="struct_o_c_i___elem.html#c0d4f7331dec95693a62f16f58fd83b1">handle</a> != NULL)<a name="l00368"></a>00368     {<a name="l00369"></a>00369         OCIRaw *raw = *(OCIRaw **) elem-&gt;<a class="code" href="struct_o_c_i___elem.html#c0d4f7331dec95693a62f16f58fd83b1">handle</a>;<a name="l00370"></a>00370         ub4 raw_len = 0;<a name="l00371"></a>00371     <a name="l00372"></a>00372         OCI_CALL2<a name="l00373"></a>00373         (<a name="l00374"></a>00374             res, elem-&gt;<a class="code" href="struct_o_c_i___elem.html#ee39de42db436e4e5bb0814a5e04fbd2">con</a>, <a name="l00375"></a>00375             <a name="l00376"></a>00376             OCIRawAllocSize(OCILib.env, elem-&gt;<a class="code" href="struct_o_c_i___elem.html#ee39de42db436e4e5bb0814a5e04fbd2">con</a>-&gt;<a class="code" href="struct_o_c_i___connection.html#573a359867139990b1b0f50aa7a86175">err</a>, raw, (ub4*) &amp;raw_len)<a name="l00377"></a>00377         )<a name="l00378"></a>00378 <a name="l00379"></a>00379         <span class="keywordflow">if</span> (res == TRUE)<a name="l00380"></a>00380         {<a name="l00381"></a>00381             <span class="keywordflow">if</span> (len &gt; raw_len)<a name="l00382"></a>00382                 len = raw_len;<a name="l00383"></a>00383 <a name="l00384"></a>00384             memcpy(value, OCIRawPtr(OCILib.env, raw), len);<a name="l00385"></a>00385         }<a name="l00386"></a>00386     }<a name="l00387"></a>00387 <a name="l00388"></a>00388     OCI_RESULT(res);<a name="l00389"></a>00389 <a name="l00390"></a>00390     <span class="keywordflow">return</span> len; <a name="l00391"></a>00391 }<a name="l00392"></a>00392 <a name="l00393"></a>00393 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00394"></a>00394 <span class="comment"> * OCI_ElemGetDate</span><a name="l00395"></a>00395 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00396"></a>00396 <a name="l00397"></a><a class="code" href="group__g__collection.html#g845f25da882fa8bc024480ed8cfbb1cc">00397</a> <a class="code" href="struct_o_c_i___date.html" title="Oracle internal date representation.">OCI_Date</a> * OCI_API  <a class="code" href="group__g__collection.html#g845f25da882fa8bc024480ed8cfbb1cc" title="Return the Date value of the given collection element.">OCI_ElemGetDate</a>(<a class="code" href="struct_o_c_i___elem.html" title="Oracle Collection item representation.">OCI_Elem</a> *elem)<a name="l00398"></a>00398 {<a name="l00399"></a>00399     <a class="code" href="struct_o_c_i___date.html" title="Oracle internal date representation.">OCI_Date</a> *date = NULL;<a name="l00400"></a>00400 <a name="l00401"></a>00401     OCI_CHECK_PTR(OCI_IPC_ELEMENT, elem, NULL);<a name="l00402"></a>00402 <a name="l00403"></a>00403     <span class="keywordflow">if</span> (elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#93bfdf4f9926d4680f93356402177110">type</a> == OCI_CDT_DATETIME)<a name="l00404"></a>00404     {<a name="l00405"></a>00405         date = OCI_DateInit(elem-&gt;<a class="code" href="struct_o_c_i___elem.html#ee39de42db436e4e5bb0814a5e04fbd2">con</a>, (<a class="code" href="struct_o_c_i___date.html" title="Oracle internal date representation.">OCI_Date</a> **) &amp;elem-&gt;<a class="code" href="struct_o_c_i___elem.html#1f6a7c83fa40eecd2271c40736043887">obj</a>, <a name="l00406"></a>00406                             (OCIDate* ) elem-&gt;<a class="code" href="struct_o_c_i___elem.html#c0d4f7331dec95693a62f16f58fd83b1">handle</a> , FALSE, FALSE);<a name="l00407"></a>00407     }<a name="l00408"></a>00408 <a name="l00409"></a>00409     OCI_RESULT(date != NULL);<a name="l00410"></a>00410 <a name="l00411"></a>00411     <span class="keywordflow">return</span> date;<a name="l00412"></a>00412 }<a name="l00413"></a>00413 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00414"></a>00414 <span class="comment"> * OCI_ElemGetTimeStamp</span><a name="l00415"></a>00415 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00416"></a>00416 <a name="l00417"></a><a class="code" href="group__g__collection.html#gf301df8ded2f2664e413bf6c2465ead7">00417</a> <a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> * OCI_API  <a class="code" href="group__g__collection.html#gf301df8ded2f2664e413bf6c2465ead7" title="Return the Timestamp value of the given collection element.">OCI_ElemGetTimeStamp</a>(<a class="code" href="struct_o_c_i___elem.html" title="Oracle Collection item representation.">OCI_Elem</a> *elem)<a name="l00418"></a>00418 {<a name="l00419"></a>00419     <a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> *tmsp = NULL;<a name="l00420"></a>00420 <a name="l00421"></a>00421     OCI_CHECK_PTR(OCI_IPC_ELEMENT, elem, NULL);<a name="l00422"></a>00422 <a name="l00423"></a>00423     <span class="keywordflow">if</span> (elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#93bfdf4f9926d4680f93356402177110">type</a> == OCI_CDT_TIMESTAMP)<a name="l00424"></a>00424     {<a name="l00425"></a>00425         tmsp = OCI_TimestampInit(elem-&gt;<a class="code" href="struct_o_c_i___elem.html#ee39de42db436e4e5bb0814a5e04fbd2">con</a>, (<a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> **) &amp;elem-&gt;<a class="code" href="struct_o_c_i___elem.html#1f6a7c83fa40eecd2271c40736043887">obj</a>, <a name="l00426"></a>00426                             (OCIDateTime *) elem-&gt;<a class="code" href="struct_o_c_i___elem.html#c0d4f7331dec95693a62f16f58fd83b1">handle</a>, elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#e1fb2448942e7ee1c3fa23662612f1e6">subtype</a>);<a name="l00427"></a>00427     }<a name="l00428"></a>00428 <a name="l00429"></a>00429     OCI_RESULT(tmsp != NULL);<a name="l00430"></a>00430 <a name="l00431"></a>00431     <span class="keywordflow">return</span> tmsp;<a name="l00432"></a>00432 }<a name="l00433"></a>00433 <a name="l00434"></a>00434 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00435"></a>00435 <span class="comment"> * OCI_ElemGetInterval</span><a name="l00436"></a>00436 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00437"></a>00437 <a name="l00438"></a><a class="code" href="group__g__collection.html#ga0fd940d7e94aa96188ad5319cc5b9c7">00438</a> <a class="code" href="struct_o_c_i___interval.html" title="Oracle internal interval representation.">OCI_Interval</a> * OCI_API <a class="code" href="group__g__collection.html#ga0fd940d7e94aa96188ad5319cc5b9c7" title="Return the Interval value of the given collection element.">OCI_ElemGetInterval</a>(<a class="code" href="struct_o_c_i___elem.html" title="Oracle Collection item representation.">OCI_Elem</a> *elem)<a name="l00439"></a>00439 {<a name="l00440"></a>00440     <a class="code" href="struct_o_c_i___interval.html" title="Oracle internal interval representation.">OCI_Interval</a> *itv = NULL;<a name="l00441"></a>00441 <a name="l00442"></a>00442     OCI_CHECK_PTR(OCI_IPC_ELEMENT, elem, NULL);<a name="l00443"></a>00443 <a name="l00444"></a>00444     <span class="keywordflow">if</span> (elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#93bfdf4f9926d4680f93356402177110">type</a> == OCI_CDT_INTERVAL)<a name="l00445"></a>00445     {<a name="l00446"></a>00446         itv = OCI_IntervalInit(elem-&gt;<a class="code" href="struct_o_c_i___elem.html#ee39de42db436e4e5bb0814a5e04fbd2">con</a>, (<a class="code" href="struct_o_c_i___interval.html" title="Oracle internal interval representation.">OCI_Interval</a> **) &amp;elem-&gt;<a class="code" href="struct_o_c_i___elem.html#1f6a7c83fa40eecd2271c40736043887">obj</a>, <a name="l00447"></a>00447                                (OCIInterval *) elem-&gt;<a class="code" href="struct_o_c_i___elem.html#c0d4f7331dec95693a62f16f58fd83b1">handle</a>, elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#e1fb2448942e7ee1c3fa23662612f1e6">subtype</a>);<a name="l00448"></a>00448     }<a name="l00449"></a>00449 <a name="l00450"></a>00450     OCI_RESULT(itv != NULL);<a name="l00451"></a>00451 <a name="l00452"></a>00452     <span class="keywordflow">return</span> itv;<a name="l00453"></a>00453 }<a name="l00454"></a>00454 <a name="l00455"></a>00455 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00456"></a>00456 <span class="comment"> * OCI_ElemGetLob</span><a name="l00457"></a>00457 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00458"></a>00458 <a name="l00459"></a><a class="code" href="group__g__collection.html#gb57880464fceffc745cf6e1227fc30b8">00459</a> <a class="code" href="struct_o_c_i___lob.html" title="Oracle Internal Large objects :.">OCI_Lob</a> * OCI_API  <a class="code" href="group__g__collection.html#gb57880464fceffc745cf6e1227fc30b8" title="Return the Lob value of the given collection element.">OCI_ElemGetLob</a>(<a class="code" href="struct_o_c_i___elem.html" title="Oracle Collection item representation.">OCI_Elem</a> *elem)<a name="l00460"></a>00460 {<a name="l00461"></a>00461     <a class="code" href="struct_o_c_i___lob.html" title="Oracle Internal Large objects :.">OCI_Lob</a> *lob = NULL;<a name="l00462"></a>00462 <a name="l00463"></a>00463     OCI_CHECK_PTR(OCI_IPC_ELEMENT, elem, NULL);<a name="l00464"></a>00464 <a name="l00465"></a>00465     <span class="keywordflow">if</span> (elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#93bfdf4f9926d4680f93356402177110">type</a> == OCI_CDT_LOB)<a name="l00466"></a>00466     {<a name="l00467"></a>00467         OCILobLocator *loc = *(OCILobLocator **) elem-&gt;<a class="code" href="struct_o_c_i___elem.html#c0d4f7331dec95693a62f16f58fd83b1">handle</a>;<a name="l00468"></a>00468         <a name="l00469"></a>00469         lob = OCI_LobInit(elem-&gt;<a class="code" href="struct_o_c_i___elem.html#ee39de42db436e4e5bb0814a5e04fbd2">con</a>, (<a class="code" href="struct_o_c_i___lob.html" title="Oracle Internal Large objects :.">OCI_Lob</a> **) &amp;elem-&gt;<a class="code" href="struct_o_c_i___elem.html#1f6a7c83fa40eecd2271c40736043887">obj</a>, loc,<a name="l00470"></a>00470                           elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#e1fb2448942e7ee1c3fa23662612f1e6">subtype</a>);<a name="l00471"></a>00471     }<a name="l00472"></a>00472 <a name="l00473"></a>00473     OCI_RESULT(lob != NULL);<a name="l00474"></a>00474 <a name="l00475"></a>00475     <span class="keywordflow">return</span> lob;<a name="l00476"></a>00476 }<a name="l00477"></a>00477 <a name="l00478"></a>00478 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00479"></a>00479 <span class="comment"> * OCI_ElemGetFile</span><a name="l00480"></a>00480 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00481"></a>00481 <a name="l00482"></a><a class="code" href="group__g__collection.html#gc94f94240ce43feb4c7673cc2602f44e">00482</a> <a class="code" href="struct_o_c_i___file.html" title="Oracle External Large objects :.">OCI_File</a> * OCI_API  <a class="code" href="group__g__collection.html#gc94f94240ce43feb4c7673cc2602f44e" title="Return the File value of the given collection element.">OCI_ElemGetFile</a>(<a class="code" href="struct_o_c_i___elem.html" title="Oracle Collection item representation.">OCI_Elem</a> *elem)<a name="l00483"></a>00483 {<a name="l00484"></a>00484     <a class="code" href="struct_o_c_i___file.html" title="Oracle External Large objects :.">OCI_File</a> *file = NULL;<a name="l00485"></a>00485 <a name="l00486"></a>00486     OCI_CHECK_PTR(OCI_IPC_ELEMENT, elem, NULL);<a name="l00487"></a>00487 <a name="l00488"></a>00488     <span class="keywordflow">if</span> (elem-&gt;<a class="code" href="struct_o_c_i___elem.html#89b019f0c9d281432fc411d1ebf7ea1f">col</a>-&gt;<a class="code" href="struct_o_c_i___column.html#93bfdf4f9926d4680f93356402177110">type</a> == OCI_CDT_FILE)<a name="l00489"></a>00489     {

⌨️ 快捷键说明

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