﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-梁宏舍（starofrainnight）-随笔分类-數據庫</title><link>http://www.cppblog.com/starofrainnight/category/7358.html</link><description>萬載星夜奮筆書，百世冷月淡然看</description><language>zh-cn</language><lastBuildDate>Fri, 13 Jun 2008 18:21:33 GMT</lastBuildDate><pubDate>Fri, 13 Jun 2008 18:21:33 GMT</pubDate><ttl>60</ttl><item><title>使用 OTL 連接 SQLite</title><link>http://www.cppblog.com/starofrainnight/archive/2008/06/13/53180.html</link><dc:creator>starofrainnight</dc:creator><author>starofrainnight</author><pubDate>Fri, 13 Jun 2008 14:56:00 GMT</pubDate><guid>http://www.cppblog.com/starofrainnight/archive/2008/06/13/53180.html</guid><wfw:comment>http://www.cppblog.com/starofrainnight/comments/53180.html</wfw:comment><comments>http://www.cppblog.com/starofrainnight/archive/2008/06/13/53180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/starofrainnight/comments/commentRss/53180.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/starofrainnight/services/trackbacks/53180.html</trackback:ping><description><![CDATA[<p><span style="FONT-SIZE: 12pt">　　本文章假定妳熟悉SQLite數據庫，假定妳對OTL有一定了解，假定妳所使用的操作系統為Windows平台。<br><br>　　OTL 採用的是ODBC數據源機制，到 </span><a href="http://www.ch-werner.de/sqliteodbc/"><span style="FONT-SIZE: 12pt">http://www.ch-werner.de/sqliteodbc/ </span></a><a href="http://otl.sourceforge.net/"></a><font face="Courier New"><span style="FONT-SIZE: 12pt">&nbsp;可下載到最新的SQLiteODBC數據源驅動。<br><br>　　假定你已經創建了一個名為 MyTestDB 的數據源連接到你的數據庫，數據庫中有一表 Users, 表中有字段 id 及 value，id 为整型，value為字符串50個字節。</span><br><br></font></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span> </font><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</font> </span><font face="Courier New"><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span> </font><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> <br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></font></span><font face="Courier New"><span style="COLOR: #008000">//</span> <span style="COLOR: #008000">配置ODBC連接方式，其它方式可查看頭文件或文檔</span> </font><span style="COLOR: #008000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></font></span><font face="Courier New"><span style="COLOR: #0000ff">#define</span> <span style="COLOR: #000000">OTL_ODBC</span> </font><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</font> </span><font face="Courier New"><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">otlv4.h</span><span style="COLOR: #000000">&gt;</span> </font><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> <br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>otl_connect&nbsp;db;&nbsp;</font> </span><font face="Courier New"><span style="COLOR: #008000">//</span> <span style="COLOR: #008000">&nbsp;連接物件</span> </font><span style="COLOR: #008000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> </font></span><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> </font></span><font face="Courier New"><span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">&nbsp;test_select(</span> <span style="COLOR: #0000ff">void</span> </font><font face="Courier New"><span style="COLOR: #000000">)<br><img id=Codehighlighter1_152_426_Open_Image onclick="this.style.display='none'; Codehighlighter1_152_426_Open_Text.style.display='none'; Codehighlighter1_152_426_Closed_Image.style.display='inline'; Codehighlighter1_152_426_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_152_426_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_152_426_Closed_Text.style.display='none'; Codehighlighter1_152_426_Open_Image.style.display='inline'; Codehighlighter1_152_426_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span> <span id=Codehighlighter1_152_426_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span></font><span id=Codehighlighter1_152_426_Open_Text><font face="Courier New"><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;otl_stream&nbsp;dbstream(&nbsp;</span> <span style="COLOR: #000000">1</span> <span style="COLOR: #000000">,&nbsp;</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">select&nbsp;*&nbsp;from&nbsp;Users</span> <span style="COLOR: #000000">"</span> </font><font face="Courier New"><span style="COLOR: #000000">,&nbsp;db&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">int</span> </font><font face="Courier New"><span style="COLOR: #000000">&nbsp;Usersid;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">char</span> <span style="COLOR: #000000">&nbsp;Usersvalue[</span> <span style="COLOR: #000000">50</span> <span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span> <span style="COLOR: #000000">""</span> </font><font face="Courier New"><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">while</span> <span style="COLOR: #000000">(&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">dbstream.eof()&nbsp;)&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">&nbsp;循環讀取記錄</span> </font><span style="COLOR: #008000"><br><font face="Courier New"><img id=Codehighlighter1_290_424_Open_Image onclick="this.style.display='none'; Codehighlighter1_290_424_Open_Text.style.display='none'; Codehighlighter1_290_424_Closed_Image.style.display='inline'; Codehighlighter1_290_424_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top> <img id=Codehighlighter1_290_424_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_290_424_Closed_Text.style.display='none'; Codehighlighter1_290_424_Open_Image.style.display='inline'; Codehighlighter1_290_424_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top> </font></span><font face="Courier New"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span> <span id=Codehighlighter1_290_424_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span></font><span id=Codehighlighter1_290_424_Open_Text><font face="Courier New"><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbstream&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span> <span style="COLOR: #000000">Usersid</span> <span style="COLOR: #000000">&gt;&gt;</span></font><font face="Courier New"><span style="COLOR: #000000">&nbsp;Usersvalue;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #000000">&lt;&lt;</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #000000">"</span><span style="COLOR: #000000">Users.id&nbsp;:&nbsp;</span><span style="COLOR: #000000">"</span>&nbsp;<span style="COLOR: #000000">&lt;&lt;</span></font><font face="Courier New"><span style="COLOR: #000000">&nbsp;Usersid<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #000000">&lt;&lt;</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #000000">"</span><span style="COLOR: #000000">Users.value&nbsp;:&nbsp;</span><span style="COLOR: #000000">"</span>&nbsp;<span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;Usersvalue&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span></font><font face="Courier New"><span style="COLOR: #000000">&nbsp;std::endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span> </font></span><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</font> </span><font face="Courier New"></font></span><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> <br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> </font></span><font face="Courier New"><span style="COLOR: #0000ff">int</span> </font><font face="Courier New"><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_440_629_Open_Image onclick="this.style.display='none'; Codehighlighter1_440_629_Open_Text.style.display='none'; Codehighlighter1_440_629_Closed_Image.style.display='inline'; Codehighlighter1_440_629_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_440_629_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_440_629_Closed_Text.style.display='none'; Codehighlighter1_440_629_Open_Image.style.display='inline'; Codehighlighter1_440_629_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span> <span id=Codehighlighter1_440_629_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span></font><span id=Codehighlighter1_440_629_Open_Text><font face="Courier New"><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;otl_connect::otl_initialize();&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">&nbsp;初始化OTL環境</span> </font><span style="COLOR: #008000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </font></span><font face="Courier New"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;db.rlogon(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">DSN=MyTestDB</span><span style="COLOR: #000000">"</span></font><font face="Courier New"><span style="COLOR: #000000">&nbsp;);&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">if</span> </font><font face="Courier New"><span style="COLOR: #000000">(&nbsp;db.connected&nbsp;)<br><img id=Codehighlighter1_540_560_Open_Image onclick="this.style.display='none'; Codehighlighter1_540_560_Open_Text.style.display='none'; Codehighlighter1_540_560_Closed_Image.style.display='inline'; Codehighlighter1_540_560_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_540_560_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_540_560_Closed_Text.style.display='none'; Codehighlighter1_540_560_Open_Image.style.display='inline'; Codehighlighter1_540_560_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span id=Codehighlighter1_540_560_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"> </span></font><span id=Codehighlighter1_540_560_Open_Text><font face="Courier New"><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test_select();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span> </font></span><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;db.logoff();&nbsp;</font> </span><font face="Courier New"><span style="COLOR: #008000">//</span> <span style="COLOR: #008000">&nbsp;斷開連接</span> </font><span style="COLOR: #008000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </font></span><font face="Courier New"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(&nbsp;</span> <span style="COLOR: #000000">"</span><span style="COLOR: #000000">PAUSE</span><span style="COLOR: #000000">"</span> <span style="COLOR: #000000">&nbsp;);&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">&nbsp;暫停</span> </font><span style="COLOR: #008000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top> </font></span><font face="Courier New"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #000000">0</span> </font><font face="Courier New"><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span> </font></span><span style="COLOR: #000000"><br><font face="Courier New"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top> </font></span></div>
<p><br>&nbsp;</p>
<p><font face="Courier New">　　<br><br><br></font></p>
<img src ="http://www.cppblog.com/starofrainnight/aggbug/53180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/starofrainnight/" target="_blank">starofrainnight</a> 2008-06-13 22:56 <a href="http://www.cppblog.com/starofrainnight/archive/2008/06/13/53180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>