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

📄 timestamp_8c-source.html

📁 ORACLE编程的好东西,纯C写的OCI封装.很好用,支持数据池.
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00570"></a>00570 }<a name="l00571"></a>00571 <a name="l00572"></a>00572 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00573"></a>00573 <span class="comment"> * OCI_TimestampGetDateTime</span><a name="l00574"></a>00574 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00575"></a>00575 <a name="l00576"></a><a class="code" href="group__g__timestamp.html#g364aa28b777ed77ac6c66b7dd95926e8">00576</a> <span class="keywordtype">boolean</span> OCI_API <a class="code" href="group__g__timestamp.html#g364aa28b777ed77ac6c66b7dd95926e8" title="Extract the date and time parts from a date handle.">OCI_TimestampGetDateTime</a>(<a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> *tmsp, <span class="keywordtype">int</span> *year, <a name="l00577"></a>00577                                          <span class="keywordtype">int</span> *month, <span class="keywordtype">int</span> *day, <span class="keywordtype">int</span> *hour, <a name="l00578"></a>00578                                          <span class="keywordtype">int</span> *min, <span class="keywordtype">int</span> *sec, <span class="keywordtype">int</span> *fsec)<a name="l00579"></a>00579 {<a name="l00580"></a>00580     <span class="keywordflow">return</span> (<a class="code" href="group__g__timestamp.html#ge8b95bad27ed1bce2e9753e30d3fa26b" title="Extract the date part from a timestamp handle.">OCI_TimestampGetDate</a>(tmsp, year, month, day) &amp;&amp;<a name="l00581"></a>00581             <a class="code" href="group__g__timestamp.html#g4c56996d6dc31b7a4373daa0018c88e1" title="Extract the time portion from a timestamp handle.">OCI_TimestampGetTime</a>(tmsp, hour, min, sec, fsec));<a name="l00582"></a>00582 }<a name="l00583"></a>00583 <a name="l00584"></a>00584 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00585"></a>00585 <span class="comment"> * OCI_TimestampGetTimeZoneName</span><a name="l00586"></a>00586 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00587"></a>00587 <a name="l00588"></a><a class="code" href="group__g__timestamp.html#gc118f3649052c1460ac309abd2f7e2ba">00588</a> <span class="keywordtype">boolean</span> OCI_API <a class="code" href="group__g__timestamp.html#gc118f3649052c1460ac309abd2f7e2ba" title="Return the time zone name of a timestamp handle.">OCI_TimestampGetTimeZoneName</a>(<a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> *tmsp, <span class="keywordtype">int</span> size,<a name="l00589"></a>00589                                              mtext *str)<a name="l00590"></a>00590 {<a name="l00591"></a>00591     <span class="keywordtype">boolean</span> res = TRUE;<a name="l00592"></a>00592     <span class="keywordtype">void</span> *ostr  = NULL;<a name="l00593"></a>00593     <span class="keywordtype">int</span> osize   = size*<span class="keyword">sizeof</span>(mtext);<a name="l00594"></a>00594 <a name="l00595"></a>00595     OCI_CHECK_PTR(OCI_IPC_TIMESTAMP, tmsp, FALSE);<a name="l00596"></a>00596     OCI_CHECK_PTR(OCI_IPC_STRING, str, FALSE);<a name="l00597"></a>00597 <a name="l00598"></a>00598     OCI_CHECK_TIMESTAMP_ENABLED(tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#8d58d5aabe4cf9100bfdfc8428fbc234">con</a>, FALSE);<a name="l00599"></a>00599 <a name="l00600"></a>00600 <span class="preprocessor">#if OCI_VERSION_COMPILE &gt;= OCI_9</span><a name="l00601"></a>00601 <span class="preprocessor"></span><a name="l00602"></a>00602     ostr = OCI_GetInputMetaString(str, &amp;osize);<a name="l00603"></a>00603 <a name="l00604"></a>00604     OCI_CALL4<a name="l00605"></a>00605     (<a name="l00606"></a>00606         res, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#a63a28fecaeb556596429ac636329b22">err</a>, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#8d58d5aabe4cf9100bfdfc8428fbc234">con</a>,<a name="l00607"></a>00607         <a name="l00608"></a>00608         OCIDateTimeGetTimeZoneName((dvoid *) OCILib.env, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#a63a28fecaeb556596429ac636329b22">err</a>, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#fc374755147e6be3141d875fdad3cf8a">handle</a>,<a name="l00609"></a>00609                                    (ub1*) ostr, (ub4*) &amp;osize)<a name="l00610"></a>00610     )<a name="l00611"></a>00611 <a name="l00612"></a>00612     OCI_GetOutputMetaString(ostr, str, &amp;osize);<a name="l00613"></a>00613 <a name="l00614"></a>00614     OCI_ReleaseMetaString(ostr);<a name="l00615"></a>00615 <a name="l00616"></a>00616     <span class="comment">/* set null string terminator */</span><a name="l00617"></a>00617 <a name="l00618"></a>00618     str[osize/<span class="keyword">sizeof</span>(mtext)] = 0;<a name="l00619"></a>00619 <a name="l00620"></a>00620 <span class="preprocessor">#else</span><a name="l00621"></a>00621 <span class="preprocessor"></span><a name="l00622"></a>00622     OCI_NOT_USED(str);<a name="l00623"></a>00623     OCI_NOT_USED(size);<a name="l00624"></a>00624     OCI_NOT_USED(ostr);<a name="l00625"></a>00625     OCI_NOT_USED(osize);<a name="l00626"></a>00626 <a name="l00627"></a>00627 <span class="preprocessor">#endif</span><a name="l00628"></a>00628 <span class="preprocessor"></span><a name="l00629"></a>00629    OCI_RESULT(res);<a name="l00630"></a>00630 <a name="l00631"></a>00631    <span class="keywordflow">return</span> res;<a name="l00632"></a>00632 }<a name="l00633"></a>00633 <a name="l00634"></a>00634 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00635"></a>00635 <span class="comment"> * OCI_TimestampGetTimeZoneOffset</span><a name="l00636"></a>00636 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00637"></a>00637 <a name="l00638"></a><a class="code" href="group__g__timestamp.html#g807ca5a3e663b234945f9a018e88badb">00638</a> <span class="keywordtype">boolean</span> OCI_API <a class="code" href="group__g__timestamp.html#g807ca5a3e663b234945f9a018e88badb" title="Return the time zone (hour, minute) portion of a timestamp handle.">OCI_TimestampGetTimeZoneOffset</a>(<a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> *tmsp,<a name="l00639"></a>00639                                               <span class="keywordtype">int</span> *hour, <span class="keywordtype">int</span> *min)<a name="l00640"></a>00640 {<a name="l00641"></a>00641     <span class="keywordtype">boolean</span> res = TRUE;<a name="l00642"></a>00642 <a name="l00643"></a>00643     OCI_CHECK_PTR(OCI_IPC_TIMESTAMP, tmsp, FALSE);<a name="l00644"></a>00644     OCI_CHECK_PTR(OCI_IPC_INT, hour, FALSE);<a name="l00645"></a>00645     OCI_CHECK_PTR(OCI_IPC_INT, min, FALSE);<a name="l00646"></a>00646 <a name="l00647"></a>00647     OCI_CHECK_TIMESTAMP_ENABLED(tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#8d58d5aabe4cf9100bfdfc8428fbc234">con</a>, FALSE);<a name="l00648"></a>00648 <a name="l00649"></a>00649 <span class="preprocessor">#if OCI_VERSION_COMPILE &gt;= OCI_9</span><a name="l00650"></a>00650 <span class="preprocessor"></span><a name="l00651"></a>00651     OCI_CALL4<a name="l00652"></a>00652     (<a name="l00653"></a>00653         res, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#a63a28fecaeb556596429ac636329b22">err</a>, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#8d58d5aabe4cf9100bfdfc8428fbc234">con</a>,<a name="l00654"></a>00654         <a name="l00655"></a>00655         OCIDateTimeGetTimeZoneOffset((dvoid *) OCILib.env, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#a63a28fecaeb556596429ac636329b22">err</a>,<a name="l00656"></a>00656                                      tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#fc374755147e6be3141d875fdad3cf8a">handle</a>, (sb1*) hour, (sb1*) min)<a name="l00657"></a>00657     )<a name="l00658"></a>00658 <a name="l00659"></a>00659 <span class="preprocessor">#else</span><a name="l00660"></a>00660 <span class="preprocessor"></span><a name="l00661"></a>00661     OCI_NOT_USED(hour);<a name="l00662"></a>00662     OCI_NOT_USED(min);<a name="l00663"></a>00663 <a name="l00664"></a>00664 <span class="preprocessor">#endif</span><a name="l00665"></a>00665 <span class="preprocessor"></span><a name="l00666"></a>00666    OCI_RESULT(res);<a name="l00667"></a>00667 <a name="l00668"></a>00668    <span class="keywordflow">return</span> res;<a name="l00669"></a>00669 }<a name="l00670"></a>00670 <a name="l00671"></a>00671 <span class="comment">/* ------------------------------------------------------------------------ *</span><a name="l00672"></a>00672 <span class="comment"> * OCI_TimestampIntervalAdd</span><a name="l00673"></a>00673 <span class="comment"> * ------------------------------------------------------------------------ */</span><a name="l00674"></a>00674 <a name="l00675"></a><a class="code" href="group__g__timestamp.html#g43028a0463f25bcd9665993a244572e7">00675</a> <span class="keywordtype">boolean</span> OCI_API <a class="code" href="group__g__timestamp.html#g43028a0463f25bcd9665993a244572e7" title="Add an interval value to a timestamp value of a timestamp handle.">OCI_TimestampIntervalAdd</a>(<a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> *tmsp, <a class="code" href="struct_o_c_i___interval.html" title="Oracle internal interval representation.">OCI_Interval</a> *itv)<a name="l00676"></a>00676 {<a name="l00677"></a>00677     <span class="keywordtype">boolean</span> res  = TRUE;<a name="l00678"></a>00678     ub4 old_type = OCI_TIMESTAMP_TZ;<a name="l00679"></a>00679 <a name="l00680"></a>00680     OCI_CHECK_PTR(OCI_IPC_TIMESTAMP, tmsp, FALSE);<a name="l00681"></a>00681     OCI_CHECK_PTR(OCI_IPC_INTERVAL, itv,  FALSE);<a name="l00682"></a>00682 <a name="l00683"></a>00683     OCI_CHECK_TIMESTAMP_ENABLED(tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#8d58d5aabe4cf9100bfdfc8428fbc234">con</a>, FALSE);<a name="l00684"></a>00684 <a name="l00685"></a>00685 <a name="l00686"></a>00686 <span class="preprocessor">#if OCI_VERSION_COMPILE &gt;= OCI_9</span><a name="l00687"></a>00687 <span class="preprocessor"></span><a name="l00688"></a>00688     <span class="comment">/* OCIDateTimeIntervalAdd()  fails if timestamps is not OCI_TIMESTAMP_TZ */</span><a name="l00689"></a>00689 <a name="l00690"></a>00690     <span class="keywordflow">if</span> ((res == TRUE) &amp;&amp; (tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#c650d324d802e3484654ec52df509ff5">type</a> != OCI_TIMESTAMP_TZ))    <a name="l00691"></a>00691     {<a name="l00692"></a>00692         <a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> *tmp = <a class="code" href="group__g__timestamp.html#g5c590ea371920703997cd7bea126ad9d" title="Create a local Timestamp instance.">OCI_TimestampCreate</a>(tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#8d58d5aabe4cf9100bfdfc8428fbc234">con</a>, OCI_TIMESTAMP_TZ);<a name="l00693"></a>00693 <a name="l00694"></a>00694         old_type = tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#c650d324d802e3484654ec52df509ff5">type</a>;<a name="l00695"></a>00695 <a name="l00696"></a>00696         res = <a class="code" href="group__g__timestamp.html#g6b8356c2fcaa984d2d63edd5cc7a357b" title="Assign the value of a timestamp handle to another one.">OCI_TimestampAssign</a>(tmp, tmsp) &amp;&amp; <a class="code" href="group__g__timestamp.html#g40864de524cc390bd3b33ce722992cca" title="Convert one timestamp value from one type to another.">OCI_TimestampConvert</a>(tmp, tmsp);<a name="l00697"></a>00697 <a name="l00698"></a>00698         <a class="code" href="group__g__timestamp.html#g60e9851db1175d6b650f9df00db274da" title="Free an OCI_Timestamp handle.">OCI_TimestampFree</a>(tmp);<a name="l00699"></a>00699     }<a name="l00700"></a>00700 <a name="l00701"></a>00701     OCI_CALL4<a name="l00702"></a>00702     (<a name="l00703"></a>00703         res, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#a63a28fecaeb556596429ac636329b22">err</a>, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#8d58d5aabe4cf9100bfdfc8428fbc234">con</a>,<a name="l00704"></a>00704         <a name="l00705"></a>00705         OCIDateTimeIntervalAdd((dvoid *) OCILib.env, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#a63a28fecaeb556596429ac636329b22">err</a>, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#fc374755147e6be3141d875fdad3cf8a">handle</a>,<a name="l00706"></a>00706                                itv-&gt;<a class="code" href="struct_o_c_i___interval.html#84c681371987114f46de3266758963a6">handle</a>, tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.html#fc374755147e6be3141d875fdad3cf8a">handle</a>)<a name="l00707"></a>00707     )<a name="l00708"></a>00708 <a name="l00709"></a>00709     <span class="comment">/* restoring old timestamp type */</span><a name="l00710"></a>00710 <a name="l00711"></a>00711     <span class="keywordflow">if</span> ((res == TRUE) &amp;&amp; (old_type != OCI_TIMESTAMP_TZ))    <a name="l00712"></a>00712     {<a name="l00713"></a>00713         <a class="code" href="struct_o_c_i___timestamp.html" title="Oracle internal timespamp representation.">OCI_Timestamp</a> *tmp = <a class="code" href="group__g__timestamp.html#g5c590ea371920703997cd7bea126ad9d" title="Create a local Timestamp instance.">OCI_TimestampCreate</a>(tmsp-&gt;<a class="code" href="struct_o_c_i___timestamp.ht

⌨️ 快捷键说明

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