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

📄 types_8h-source.html.svn-base

📁 絲路server源碼 Silk Road server source
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
00554         this-&gt;_invalid(ODBCXX_STRING_CONST(<font class="stringliteral">"nanoseconds"</font>),n);00555       }00556       <font class="keywordflow">return</font> n;00557     }00558 00559   <font class="keyword">public</font>:<a name="l00561"></a><a class="code" href="classodbc_1_1_timestamp.html#a0">00561</a>     Timestamp(<font class="keywordtype">int</font> year, <font class="keywordtype">int</font> month, <font class="keywordtype">int</font> day,00562               <font class="keywordtype">int</font> hour, <font class="keywordtype">int</font> minute, <font class="keywordtype">int</font> second,00563               <font class="keywordtype">int</font> nanos =0)00564       :Date(year,month,day), Time(hour,minute,second) {00565       this-&gt;setNanos(nanos);00566     }00567 00572     <font class="keyword">explicit</font> Timestamp();00573 <a name="l00578"></a><a class="code" href="classodbc_1_1_timestamp.html#a2">00578</a>     Timestamp(std::time_t t) {00579       this-&gt;setTime(t);00580     }00581 <a name="l00586"></a><a class="code" href="classodbc_1_1_timestamp.html#a3">00586</a>     Timestamp(<font class="keyword">const</font> ODBCXX_STRING&amp; s) {00587       this-&gt;parse(s);00588     }00589 00590 <a name="l00592"></a><a class="code" href="classodbc_1_1_timestamp.html#a4">00592</a>     Timestamp(<font class="keyword">const</font> Timestamp&amp; t)00593       :Date(t),Time(t),nanos_(t.nanos_) {}00594 <a name="l00596"></a><a class="code" href="classodbc_1_1_timestamp.html#a5">00596</a>     Timestamp&amp; operator=(<font class="keyword">const</font> Timestamp&amp; t) {00597       Date::operator=(t);00598       Time::operator=(t);00599       nanos_=t.nanos_;00600       <font class="keywordflow">return</font> *<font class="keyword">this</font>;00601     }00602 <a name="l00604"></a><a class="code" href="classodbc_1_1_timestamp.html#a6">00604</a>     <font class="keyword">virtual</font> ~Timestamp() {}00605 00607     <font class="keyword">virtual</font> <font class="keywordtype">void</font> setTime(std::time_t t);00608 <a name="l00610"></a><a class="code" href="classodbc_1_1_timestamp.html#a8">00610</a>     <font class="keyword">virtual</font> std::time_t getTime() {00611       <font class="keywordflow">return</font> Date::getTime()+Time::getTime();00612     }00613 00616     <font class="keywordtype">void</font> parse(<font class="keyword">const</font> ODBCXX_STRING&amp; s);00617 <a name="l00619"></a><a class="code" href="classodbc_1_1_timestamp.html#a10">00619</a>     <font class="keywordtype">int</font> getNanos()<font class="keyword"> const </font>{00620       <font class="keywordflow">return</font> nanos_;00621     }00622 <a name="l00624"></a><a class="code" href="classodbc_1_1_timestamp.html#a11">00624</a>     <font class="keywordtype">void</font> setNanos(<font class="keywordtype">int</font> nanos) {00625       nanos_=this-&gt;_validateNanos(nanos);00626     }00627 00628     <font class="keyword">virtual</font> ODBCXX_STRING toString() <font class="keyword">const</font>;00629   };00630 00631 00632   <font class="comment">//this is used for several 'lists of stuff' below</font>00633   <font class="comment">//expects T to be a pointer-to-something, and</font>00634   <font class="comment">//the contents will get deleted when the vector</font>00635   <font class="comment">//itself is deleted</font>00636   <font class="keyword">template</font> &lt;<font class="keyword">class</font> T&gt; <font class="keyword">class </font>CleanVector : <font class="keyword">public</font> std::vector&lt;T&gt; {00637   <font class="keyword">private</font>:00638     CleanVector(<font class="keyword">const</font> CleanVector&lt;T&gt;&amp;); <font class="comment">//forbid</font>00639     CleanVector&lt;T&gt;&amp; operator=(<font class="keyword">const</font> CleanVector&lt;T&gt;&amp;); <font class="comment">//forbid</font>00640 00641   <font class="keyword">public</font>:00642     <font class="keyword">explicit</font> CleanVector() {}00643     <font class="keyword">virtual</font> ~CleanVector() {00644       <font class="keyword">typename</font> std::vector&lt;T&gt;::iterator i=this-&gt;begin();00645       <font class="keyword">typename</font> std::vector&lt;T&gt;::iterator end=this-&gt;end();00646       <font class="keywordflow">while</font>(i!=end) {00647         <font class="keyword">delete</font> *i;00648         ++i;00649       }00650       this-&gt;clear();00651     }00652   };00653 00654 <a name="l00657"></a><a class="code" href="classodbc_1_1_driver_message.html">00657</a>   <font class="keyword">class </font>ODBCXX_EXPORT DriverMessage {00658     <font class="keyword">friend</font> <font class="keyword">class </font>ErrorHandler;00659 00660   <font class="keyword">private</font>:00661     ODBCXX_CHAR_TYPE state_[SQL_SQLSTATE_SIZE+1];00662     ODBCXX_CHAR_TYPE description_[SQL_MAX_MESSAGE_LENGTH];00663     SQLINTEGER nativeCode_;00664 00665     DriverMessage() {}00666 <font class="preprocessor">#if ODBCVER &lt; 0x0300</font>00667 <font class="preprocessor"></font>    <font class="keyword">static</font> DriverMessage* fetchMessage(SQLHENV henv,00668                                        SQLHDBC hdbc,00669                                        SQLHSTMT hstmt);00670 <font class="preprocessor">#else</font>00671 <font class="preprocessor"></font>    <font class="keyword">static</font> DriverMessage* fetchMessage(SQLINTEGER handleType,00672                                        SQLHANDLE h,00673                                        <font class="keywordtype">int</font> idx);00674 <font class="preprocessor">#endif</font>00675 <font class="preprocessor"></font>00676   <font class="keyword">public</font>:00677     <font class="keyword">virtual</font> ~DriverMessage() {}00678 00679     <font class="keyword">const</font> ODBCXX_CHAR_TYPE* getSQLState()<font class="keyword"> const </font>{00680       <font class="keywordflow">return</font> state_;00681     }00682 00683     <font class="keyword">const</font> ODBCXX_CHAR_TYPE* getDescription()<font class="keyword"> const </font>{00684       <font class="keywordflow">return</font> description_;00685     }00686 00687     <font class="keywordtype">int</font> getNativeCode()<font class="keyword"> const </font>{00688       <font class="keywordflow">return</font> nativeCode_;00689     }00690   };00691 00692 <a name="l00695"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html">00695</a>   <font class="keyword">class </font>SQLException : <font class="keyword">public</font> std::exception {00696   <font class="keyword">private</font>:00697     ODBCXX_STRING reason_;00698     ODBCXX_STRING sqlState_;00699     <font class="keywordtype">int</font> errorCode_;00700 <font class="preprocessor">#if defined(ODBCXX_UNICODE)</font>00701 <font class="preprocessor"></font>    std::string reason8_;00702 <font class="preprocessor">#elif defined(ODBCXX_QT)</font>00703 <font class="preprocessor"></font>    QCString reason8_;00704 <font class="preprocessor">#endif</font>00705 <font class="preprocessor"></font>  <font class="keyword">public</font>:<a name="l00707"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html#a0">00707</a>     <a class="code" href="classodbc_1_1_s_q_l_exception.html#a0">SQLException</a>(<font class="keyword">const</font> ODBCXX_STRING&amp; reason =ODBCXX_STRING_CONST(<font class="stringliteral">""</font>),00708                  <font class="keyword">const</font> ODBCXX_STRING&amp; sqlState =ODBCXX_STRING_CONST(<font class="stringliteral">""</font>),00709                  <font class="keywordtype">int</font> vendorCode =0)00710       :reason_(reason),00711        sqlState_(sqlState),00712        errorCode_(vendorCode)00713 #if defined(ODBCXX_UNICODE)00714 {00715    <font class="keyword">const</font> size_t length =<font class="keyword">sizeof</font>(wchar_t)*reason_.size();00716    <font class="keywordtype">char</font>* temp =<font class="keyword">new</font> <font class="keywordtype">char</font>[length+1];00717    wcstombs(temp,reason_.c_str(),length);00718    reason8_ =temp;00719    <font class="keyword">delete</font>[] temp;00720 }00721 <font class="preprocessor">#else</font>00722 <font class="preprocessor"></font><font class="preprocessor"># if defined(ODBCXX_QT)</font>00723 <font class="preprocessor"></font>      ,reason8_(reason.local8Bit())00724 <font class="preprocessor"># endif</font>00725 <font class="preprocessor"></font>{}00726 <font class="preprocessor">#endif</font>00727 <font class="preprocessor"></font><a name="l00729"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html#a1">00729</a>     <a class="code" href="classodbc_1_1_s_q_l_exception.html#a0">SQLException</a>(<font class="keyword">const</font> DriverMessage&amp; dm)00730       :reason_(dm.getDescription()),00731        sqlState_(dm.<a class="code" href="classodbc_1_1_s_q_l_exception.html#a4">getSQLState</a>()),00732        errorCode_(dm.getNativeCode()) {}00733 <a name="l00735"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html#a2">00735</a>     <font class="keyword">virtual</font> <a class="code" href="classodbc_1_1_s_q_l_exception.html#a2">~SQLException</a>() <font class="keywordflow">throw</font>() {}00736 <a name="l00738"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html#a3">00738</a>     <font class="keywordtype">int</font> <a class="code" href="classodbc_1_1_s_q_l_exception.html#a3">getErrorCode</a>()<font class="keyword"> const </font>{00739       <font class="keywordflow">return</font> errorCode_;00740     }00741 <a name="l00746"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html#a4">00746</a>     <font class="keyword">const</font> ODBCXX_STRING&amp; <a class="code" href="classodbc_1_1_s_q_l_exception.html#a4">getSQLState</a>()<font class="keyword"> const </font>{00747       <font class="keywordflow">return</font> sqlState_;00748     }00749 <a name="l00751"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html#a5">00751</a>     <font class="keyword">const</font> ODBCXX_STRING&amp; <a class="code" href="classodbc_1_1_s_q_l_exception.html#a5">getMessage</a>()<font class="keyword"> const </font>{00752       <font class="keywordflow">return</font> reason_;00753     }00754 00755 <a name="l00757"></a><a class="code" href="classodbc_1_1_s_q_l_exception.html#a6">00757</a>     <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="classodbc_1_1_s_q_l_exception.html#a6">what</a>() <font class="keyword">const</font> <font class="keywordflow">throw</font>() {00758       <font class="comment">// the conversion from QString involves a temporary, which</font>00759       <font class="comment">// doesn't survive this scope. So here, we do a conditional</font>00760 <font class="preprocessor">#if defined(ODBCXX_QT)</font>00761 <font class="preprocessor"></font>      <font class="keywordflow">return</font> reason8_.data();00762 <font class="preprocessor">#else</font>00763 <font class="preprocessor"></font><font class="preprocessor"># if defined(ODBCXX_UNICODE)</font>00764 <font class="preprocessor"></font>      <font class="keywordflow">return</font> reason8_.c_str();00765 <font class="preprocessor"># else</font>00766 <font class="preprocessor"></font>      <font class="keywordflow">return</font> reason_.c_str();00767 <font class="preprocessor"># endif</font>00768 <font class="preprocessor"></font><font class="preprocessor">#endif</font>00769 <font class="preprocessor"></font>    }00770   };00771 00772 <a name="l00777"></a><a class="code" href="classodbc_1_1_s_q_l_warning.html">00777</a>   <font class="keyword">class </font>SQLWarning : <font class="keyword">public</font> SQLException {00778 00779     <a class="code" href="classodbc_1_1_s_q_l_warning.html#a0">SQLWarning</a>(<font class="keyword">const</font> SQLWarning&amp;); <font class="comment">//forbid</font>00780     SQLWarning&amp; operator=(<font class="keyword">const</font> SQLWarning&amp;); <font class="comment">//forbid</font>00781 00782   <font class="keyword">public</font>:<a name="l00784"></a><a class="code" href="classodbc_1_1_s_q_l_warning.html#a0">00784</a>     <a class="code" href="classodbc_1_1_s_q_l_warning.html#a0">SQLWarning</a>(<font class="keyword">const</font> ODBCXX_STRING&amp; reason = ODBCXX_STRING_CONST(<font class="stringliteral">""</font>),00785                <font class="keyword">const</font> ODBCXX_STRING&amp; sqlState = ODBCXX_STRING_CONST(<font class="stringliteral">""</font>),00786                <font class="keywordtype">int</font> vendorCode =0)00787       :<a class="code" href="classodbc_1_1_s_q_l_exception.html#a0">SQLException</a>(reason,sqlState,vendorCode) {}00788 <a name="l00790"></a><a class="code" href="classodbc_1_1_s_q_l_warning.html#a1">00790</a>     <a class="code" href="classodbc_1_1_s_q_l_warning.html#a0">SQLWarning</a>(<font class="keyword">const</font> DriverMessage&amp; dm)00791       :<a class="code" href="classodbc_1_1_s_q_l_exception.html#a0">SQLException</a>(dm) {}00792 <a name="l00794"></a><a class="code" href="classodbc_1_1_s_q_l_warning.html#a2">00794</a>     <font class="keyword">virtual</font> <a class="code" href="classodbc_1_1_s_q_l_warning.html#a2">~SQLWarning</a>() <font class="keywordflow">throw</font>() {}00795   };00796 00797   <font class="keyword">typedef</font> CleanVector&lt;SQLWarning*&gt; WarningList;00798 00799 00800   <font class="keyword">template</font> &lt;<font class="keyword">class</font> T&gt; <font class="keyword">class </font>Deleter {00801   <font class="keyword">private</font>:00802     T* ptr_;00803     <font class="keywordtype">bool</font> isArray_;00804 00805     Deleter(<font class="keyword">const</font> Deleter&lt;T&gt;&amp;);00806     Deleter&lt;T&gt;&amp; operator=(<font class="keyword">const</font> Deleter&lt;T&gt;&amp;);00807 00808   <font class="keyword">public</font>:00809     <font class="keyword">explicit</font> Deleter(T* ptr, <font class="keywordtype">bool</font> isArray =<font class="keyword">false</font>)00810       :ptr_(ptr), isArray_(isArray) {}00811     ~Deleter() {00812       <font class="keywordflow">if</font>(!isArray_) {00813         <font class="keyword">delete</font> ptr_;00814       } <font class="keywordflow">else</font> {00815         <font class="keyword">delete</font>[] ptr_;00816       }00817     }00818   };00819 00820 } <font class="comment">// namespace odbc</font>00821 00822 00823 <font class="preprocessor">#endif // __ODBCXX_TYPES_H</font></pre></div><hr><div align=center><a class=footer href="http://orcane.net/freeodbc++/">Go back to the freeodbc++ homepage</a></div>

⌨️ 快捷键说明

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