資料介紹
隨著科學技術(shù)的發(fā)展,嵌入式系統(tǒng)成為了科技發(fā)展的主要領(lǐng)域, Linus和Wince是比較常見的嵌入式系統(tǒng)。嵌入式開發(fā)過程離不開數(shù)據(jù)庫的應(yīng)用,對于嵌入式數(shù)據(jù)庫的選擇是必要的。通常,嵌入式系統(tǒng)選擇的數(shù)據(jù)應(yīng)該盡量小,SQLite[1]在Linux中的應(yīng)用很廣泛,本設(shè)計介紹了SQLite作為一款小巧的嵌入式數(shù)據(jù)庫在Wince[2]中的應(yīng)用實例。
1 SQLite數(shù)據(jù)庫的介紹與選擇
1.1 SQLite數(shù)據(jù)庫結(jié)構(gòu)
SQLite數(shù)據(jù)庫結(jié)構(gòu)圖如圖1所示。

1.2 SQlite數(shù)據(jù)庫的特點
SQLite是一個開源的嵌入式關(guān)系數(shù)據(jù)庫,結(jié)構(gòu)緊湊,可靠性強[3]。有以下特點:
?。?)使用非常簡單。只需要掌握3個核心API函數(shù),大多數(shù)的SQL[4]語句都可以使用。
(2)占用很少的存儲器空間。SQLite完全獨立,數(shù)據(jù)庫引擎和應(yīng)用程序在同一系統(tǒng)進程中,因此運行速度較高。
?。?)支持ACID事務(wù),在系統(tǒng)出現(xiàn)問題或電源斷電時不會出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。
?。?)支持多種語言,像C/C++/C#等。
?。?)支持多個嵌入式操作系統(tǒng)平臺,如Linux系統(tǒng)、Wince系統(tǒng)等。
2 SQlite的選擇
首先,SQL Server CE是Wince自身的數(shù)據(jù)庫,必須在Wince系統(tǒng)中安裝3個文件才能使用,而SQLite只需要在電腦上安裝SQlite-1.0.65.0[5],把生成的SQlite.Interop.065.DLL移植到Wince系統(tǒng)運行的程序中,并在Visual Studio2008寫程序時添加一個引用即可,操作較簡單。其次SQLite占用很少的存儲器空間(150 KB~250 KB),但是SQL Server CE卻要占用 1 MB~3 MB的空間。最重要的是SQLite具有良好的移植性,可以應(yīng)用到多個嵌入式系統(tǒng),而SQL Server CE只能在Wince中運行。
3 SQLite的應(yīng)用硬件及軟件平臺
本文探討中以S3C2440作為處理器ARM9的硬件平臺,以Wince6.0為應(yīng)用系統(tǒng),支持.NET2.0平臺。在Visual Studio 2008軟件平臺中用 C#中編寫程序,但是在新建項目中選擇智能設(shè)備時要選擇.NET2.0平臺。在Visual Studio 2008中用C#編寫程序時,第一次使用時要添加引用System.Data.SQLite,在程序中添加using指令集,這樣可以通過軟件編寫程序?qū)崿F(xiàn)建庫建表的功能。
4 SQLite在Wince中的應(yīng)用實例
4.1 Wince中顯示數(shù)據(jù)的控件DataGrid及其屬性
DataGrid控件實際上是一個固定的列集合,每一列的行數(shù)都是不確定的,可以看作一個用來顯示數(shù)據(jù)的網(wǎng)格。它的網(wǎng)格是看不見的,只有建立了數(shù)據(jù)表,才能看到其中每一行和每一列的具體內(nèi)容,如果一個單元格的文本太長,就不能在單元格中全部顯示。但是在Wince系統(tǒng)中顯示數(shù)據(jù)的控件只有這一個,所以不能完全顯示數(shù)據(jù)這一問題正是本設(shè)計所要解決的。圖2顯示了DataGrid在Wince中的屬性。

4.2 SQLite建數(shù)據(jù)庫的步驟
SQLite建數(shù)據(jù)庫的步驟如下:
?。?)通過SQLiteConnection對數(shù)據(jù)庫進行連接[6],通過軟件建數(shù)據(jù)庫,首先要有數(shù)據(jù)源,如:
SQLiteConnection conn=new SQLiteConnection(“Data Source=\\Program Files\\ maindata.db”);
對數(shù)據(jù)庫要進行操作需要執(zhí)行的命令,如SQLiteCommand cmd=new SQLiteCommand();
?。?)每次使用數(shù)據(jù)庫前需要打開數(shù)據(jù)庫,還需要連接數(shù)據(jù)庫,關(guān)閉數(shù)據(jù)庫;
(3)通過 CREATE TABLE SQL語句進行建表。必須給表注上表名,方便下面操作。如:
{cmd.CommandText=“CREATETABLE ServerLert(Numintrger,BedNum varchar(20),ServerItem varchar(50),ServerTime varchar(30),Passwords varchar(30));”
(4)可以通過INSERT INTO 語句進行插入數(shù)據(jù)。如:
cmd.CommandText=“INSERT INTO ServerLert(Num,BedNum,ServerItem,ServerTime) VALUES(1 ,′2′,′測血糖′,′10-12-10 15:50:00′)”;
?。?)數(shù)據(jù)庫至此建成,由于插入的時間單元格不能完全顯示,因此需要通過對圖2中標注有灰色背景的TableStyles進行設(shè)置[7]。如:
DataGridTableStyle dgts=new DataGridTableStyle();
dgts.MappingName=ds.Tables[0].TableName;
DataGridTextBoxColumn dgtbc=new DataGridTextBoxColumn();
dgtbc.HeaderText=ds.Tables[0].Columns[0].ColumnName;
dgtbc.MappingName=ds.Tables[0].Columns[0].ColumnName;
dgtbc.Width=70;
dgts.GridColumnStyles.Add(dgtbc);
上面是對表中第一列進行的寬度設(shè)置主要是對DataGridTableStyle中列的格式進行設(shè)置,這就解決了顯示文本過長的問題。第二列設(shè)置80,第三列設(shè)置了170,在Wince中運行的結(jié)果。
1 SQLite數(shù)據(jù)庫的介紹與選擇
1.1 SQLite數(shù)據(jù)庫結(jié)構(gòu)
SQLite數(shù)據(jù)庫結(jié)構(gòu)圖如圖1所示。

1.2 SQlite數(shù)據(jù)庫的特點
SQLite是一個開源的嵌入式關(guān)系數(shù)據(jù)庫,結(jié)構(gòu)緊湊,可靠性強[3]。有以下特點:
?。?)使用非常簡單。只需要掌握3個核心API函數(shù),大多數(shù)的SQL[4]語句都可以使用。
(2)占用很少的存儲器空間。SQLite完全獨立,數(shù)據(jù)庫引擎和應(yīng)用程序在同一系統(tǒng)進程中,因此運行速度較高。
?。?)支持ACID事務(wù),在系統(tǒng)出現(xiàn)問題或電源斷電時不會出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。
?。?)支持多種語言,像C/C++/C#等。
?。?)支持多個嵌入式操作系統(tǒng)平臺,如Linux系統(tǒng)、Wince系統(tǒng)等。
2 SQlite的選擇
首先,SQL Server CE是Wince自身的數(shù)據(jù)庫,必須在Wince系統(tǒng)中安裝3個文件才能使用,而SQLite只需要在電腦上安裝SQlite-1.0.65.0[5],把生成的SQlite.Interop.065.DLL移植到Wince系統(tǒng)運行的程序中,并在Visual Studio2008寫程序時添加一個引用即可,操作較簡單。其次SQLite占用很少的存儲器空間(150 KB~250 KB),但是SQL Server CE卻要占用 1 MB~3 MB的空間。最重要的是SQLite具有良好的移植性,可以應(yīng)用到多個嵌入式系統(tǒng),而SQL Server CE只能在Wince中運行。
3 SQLite的應(yīng)用硬件及軟件平臺
本文探討中以S3C2440作為處理器ARM9的硬件平臺,以Wince6.0為應(yīng)用系統(tǒng),支持.NET2.0平臺。在Visual Studio 2008軟件平臺中用 C#中編寫程序,但是在新建項目中選擇智能設(shè)備時要選擇.NET2.0平臺。在Visual Studio 2008中用C#編寫程序時,第一次使用時要添加引用System.Data.SQLite,在程序中添加using指令集,這樣可以通過軟件編寫程序?qū)崿F(xiàn)建庫建表的功能。
4 SQLite在Wince中的應(yīng)用實例
4.1 Wince中顯示數(shù)據(jù)的控件DataGrid及其屬性
DataGrid控件實際上是一個固定的列集合,每一列的行數(shù)都是不確定的,可以看作一個用來顯示數(shù)據(jù)的網(wǎng)格。它的網(wǎng)格是看不見的,只有建立了數(shù)據(jù)表,才能看到其中每一行和每一列的具體內(nèi)容,如果一個單元格的文本太長,就不能在單元格中全部顯示。但是在Wince系統(tǒng)中顯示數(shù)據(jù)的控件只有這一個,所以不能完全顯示數(shù)據(jù)這一問題正是本設(shè)計所要解決的。圖2顯示了DataGrid在Wince中的屬性。

4.2 SQLite建數(shù)據(jù)庫的步驟
SQLite建數(shù)據(jù)庫的步驟如下:
?。?)通過SQLiteConnection對數(shù)據(jù)庫進行連接[6],通過軟件建數(shù)據(jù)庫,首先要有數(shù)據(jù)源,如:
SQLiteConnection conn=new SQLiteConnection(“Data Source=\\Program Files\\ maindata.db”);
對數(shù)據(jù)庫要進行操作需要執(zhí)行的命令,如SQLiteCommand cmd=new SQLiteCommand();
?。?)每次使用數(shù)據(jù)庫前需要打開數(shù)據(jù)庫,還需要連接數(shù)據(jù)庫,關(guān)閉數(shù)據(jù)庫;
(3)通過 CREATE TABLE SQL語句進行建表。必須給表注上表名,方便下面操作。如:
{cmd.CommandText=“CREATETABLE ServerLert(Numintrger,BedNum varchar(20),ServerItem varchar(50),ServerTime varchar(30),Passwords varchar(30));”
(4)可以通過INSERT INTO 語句進行插入數(shù)據(jù)。如:
cmd.CommandText=“INSERT INTO ServerLert(Num,BedNum,ServerItem,ServerTime) VALUES(1 ,′2′,′測血糖′,′10-12-10 15:50:00′)”;
?。?)數(shù)據(jù)庫至此建成,由于插入的時間單元格不能完全顯示,因此需要通過對圖2中標注有灰色背景的TableStyles進行設(shè)置[7]。如:
DataGridTableStyle dgts=new DataGridTableStyle();
dgts.MappingName=ds.Tables[0].TableName;
DataGridTextBoxColumn dgtbc=new DataGridTextBoxColumn();
dgtbc.HeaderText=ds.Tables[0].Columns[0].ColumnName;
dgtbc.MappingName=ds.Tables[0].Columns[0].ColumnName;
dgtbc.Width=70;
dgts.GridColumnStyles.Add(dgtbc);
上面是對表中第一列進行的寬度設(shè)置主要是對DataGridTableStyle中列的格式進行設(shè)置,這就解決了顯示文本過長的問題。第二列設(shè)置80,第三列設(shè)置了170,在Wince中運行的結(jié)果。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式Linux開發(fā):Linux環(huán)境下sqlite數(shù)據(jù)庫安裝及使用
- 【嵌入式實驗】《嵌入式數(shù)據(jù)庫 sqlite 移植及使用》
- Spring嵌入式數(shù)據(jù)庫示例
- 嵌入式數(shù)據(jù)庫
- 嵌入式數(shù)據(jù)庫在生產(chǎn)車間中的應(yīng)用 1次下載
- 嵌入式數(shù)據(jù)庫在Java中的應(yīng)用解析 0次下載
- 基于WinCE的ASPCOM組件訪問SQLite數(shù)據(jù)庫孫曉層 2次下載
- 嵌入式移動數(shù)據(jù)庫NimbleDB的實現(xiàn)
- 基于Linux的嵌入式實時數(shù)據(jù)庫的設(shè)計
- JAVA在SQLite嵌入式數(shù)據(jù)庫中的應(yīng)用
- 嵌入式數(shù)據(jù)庫典型技術(shù)―SQLite和Berkeley DB的研究
- 嵌入式移動數(shù)據(jù)庫NimbleDB的實現(xiàn)
- 基于ARM 的嵌入式數(shù)據(jù)庫研究與應(yīng)用
- 工控應(yīng)用系統(tǒng)中嵌入式數(shù)據(jù)庫實時性研究
- 開源嵌入式數(shù)據(jù)庫Berkeley DB和SQLite的
- 如何使用Rust語言操作Chrome瀏覽器的SQLite數(shù)據(jù)庫 2522次閱讀
- OpenHarmony關(guān)系型數(shù)據(jù)庫概述 1087次閱讀
- 怎么創(chuàng)建SQLite數(shù)據(jù)庫 6048次閱讀
- SQLite數(shù)據(jù)庫多平臺應(yīng)用及常見錯誤分析有哪些 1033次閱讀
- 常見的數(shù)據(jù)庫管理 2110次閱讀
- 淺談SQLite最新的SQL功能 1351次閱讀
- 基于SQLite的鴻蒙的關(guān)系型數(shù)據(jù)庫使用 4231次閱讀
- 嵌入式移動數(shù)據(jù)庫的結(jié)構(gòu)體系特點及優(yōu)化查詢方法研究 2346次閱讀
- linux系統(tǒng)POS嵌入式數(shù)據(jù)庫如何去構(gòu)建 917次閱讀
- 嵌入式系統(tǒng)開發(fā)經(jīng)常使用哪一些數(shù)據(jù)庫 1758次閱讀
- 英創(chuàng)信息技術(shù)嵌入式數(shù)據(jù)庫SQLC介紹 2043次閱讀
- 基于μC/OS嵌入式操作系統(tǒng)的嵌入式數(shù)據(jù)管理設(shè)計 1241次閱讀
- 基于嵌入式數(shù)據(jù)庫的礦場安全系統(tǒng)設(shè)計方案詳解 1145次閱讀
- 基于嵌入式數(shù)據(jù)庫的海量存儲技術(shù)解析 2819次閱讀
- 嵌入式設(shè)計經(jīng)驗:ARM-WinCE平臺時鐘同步設(shè)計 1728次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1489次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 91次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 9次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30319次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論