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

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

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

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

4.2 SQLite建數(shù)據(jù)庫(kù)的步驟
SQLite建數(shù)據(jù)庫(kù)的步驟如下:
?。?)通過(guò)SQLiteConnection對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接[6],通過(guò)軟件建數(shù)據(jù)庫(kù),首先要有數(shù)據(jù)源,如:
SQLiteConnection conn=new SQLiteConnection(“Data Source=\\Program Files\\ maindata.db”);
對(duì)數(shù)據(jù)庫(kù)要進(jìn)行操作需要執(zhí)行的命令,如SQLiteCommand cmd=new SQLiteCommand();
?。?)每次使用數(shù)據(jù)庫(kù)前需要打開數(shù)據(jù)庫(kù),還需要連接數(shù)據(jù)庫(kù),關(guān)閉數(shù)據(jù)庫(kù);
(3)通過(guò) CREATE TABLE SQL語(yǔ)句進(jìn)行建表。必須給表注上表名,方便下面操作。如:
{cmd.CommandText=“CREATETABLE ServerLert(Numintrger,BedNum varchar(20),ServerItem varchar(50),ServerTime varchar(30),Passwords varchar(30));”
(4)可以通過(guò)INSERT INTO 語(yǔ)句進(jìn)行插入數(shù)據(jù)。如:
cmd.CommandText=“INSERT INTO ServerLert(Num,BedNum,ServerItem,ServerTime) VALUES(1 ,′2′,′測(cè)血糖′,′10-12-10 15:50:00′)”;
(5)數(shù)據(jù)庫(kù)至此建成,由于插入的時(shí)間單元格不能完全顯示,因此需要通過(guò)對(duì)圖2中標(biāo)注有灰色背景的TableStyles進(jìn)行設(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);
上面是對(duì)表中第一列進(jìn)行的寬度設(shè)置主要是對(duì)DataGridTableStyle中列的格式進(jìn)行設(shè)置,這就解決了顯示文本過(guò)長(zhǎng)的問(wèn)題。第二列設(shè)置80,第三列設(shè)置了170,在Wince中運(yùn)行的結(jié)果。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式Linux開發(fā):Linux環(huán)境下sqlite數(shù)據(jù)庫(kù)安裝及使用
- 【嵌入式實(shí)驗(yàn)】《嵌入式數(shù)據(jù)庫(kù) sqlite 移植及使用》
- Spring嵌入式數(shù)據(jù)庫(kù)示例
- 嵌入式數(shù)據(jù)庫(kù)
- 嵌入式數(shù)據(jù)庫(kù)在生產(chǎn)車間中的應(yīng)用 1次下載
- 嵌入式數(shù)據(jù)庫(kù)在Java中的應(yīng)用解析 0次下載
- 基于WinCE的ASPCOM組件訪問(wèn)SQLite數(shù)據(jù)庫(kù)孫曉層 2次下載
- 嵌入式移動(dòng)數(shù)據(jù)庫(kù)NimbleDB的實(shí)現(xiàn)
- 基于Linux的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)
- JAVA在SQLite嵌入式數(shù)據(jù)庫(kù)中的應(yīng)用
- 嵌入式數(shù)據(jù)庫(kù)典型技術(shù)―SQLite和Berkeley DB的研究
- 嵌入式移動(dòng)數(shù)據(jù)庫(kù)NimbleDB的實(shí)現(xiàn)
- 基于ARM 的嵌入式數(shù)據(jù)庫(kù)研究與應(yīng)用
- 工控應(yīng)用系統(tǒng)中嵌入式數(shù)據(jù)庫(kù)實(shí)時(shí)性研究
- 開源嵌入式數(shù)據(jù)庫(kù)Berkeley DB和SQLite的
- 如何使用Rust語(yǔ)言操作Chrome瀏覽器的SQLite數(shù)據(jù)庫(kù) 2522次閱讀
- OpenHarmony關(guān)系型數(shù)據(jù)庫(kù)概述 1087次閱讀
- 怎么創(chuàng)建SQLite數(shù)據(jù)庫(kù) 6048次閱讀
- SQLite數(shù)據(jù)庫(kù)多平臺(tái)應(yīng)用及常見(jiàn)錯(cuò)誤分析有哪些 1033次閱讀
- 常見(jiàn)的數(shù)據(jù)庫(kù)管理 2110次閱讀
- 淺談SQLite最新的SQL功能 1351次閱讀
- 基于SQLite的鴻蒙的關(guān)系型數(shù)據(jù)庫(kù)使用 4231次閱讀
- 嵌入式移動(dòng)數(shù)據(jù)庫(kù)的結(jié)構(gòu)體系特點(diǎn)及優(yōu)化查詢方法研究 2346次閱讀
- linux系統(tǒng)POS嵌入式數(shù)據(jù)庫(kù)如何去構(gòu)建 917次閱讀
- 嵌入式系統(tǒng)開發(fā)經(jīng)常使用哪一些數(shù)據(jù)庫(kù) 1758次閱讀
- 英創(chuàng)信息技術(shù)嵌入式數(shù)據(jù)庫(kù)SQLC介紹 2043次閱讀
- 基于μC/OS嵌入式操作系統(tǒng)的嵌入式數(shù)據(jù)管理設(shè)計(jì) 1241次閱讀
- 基于嵌入式數(shù)據(jù)庫(kù)的礦場(chǎng)安全系統(tǒng)設(shè)計(jì)方案詳解 1145次閱讀
- 基于嵌入式數(shù)據(jù)庫(kù)的海量存儲(chǔ)技術(shù)解析 2819次閱讀
- 嵌入式設(shè)計(jì)經(jīng)驗(yàn):ARM-WinCE平臺(tái)時(shí)鐘同步設(shè)計(jì) 1728次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費(fèi)
- 2AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費(fèi)
- 3AN148 GD32VW553射頻硬件開發(fā)指南
- 2.07MB | 1次下載 | 免費(fèi)
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費(fèi)
- 5AN153-用于電源系統(tǒng)管理的Linduino
- 1.38MB | 次下載 | 免費(fèi)
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費(fèi)
- 7SM2018E 支持可控硅調(diào)光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費(fèi)
- 8AN-1308: 電流檢測(cè)放大器共模階躍響應(yīng)
- 545.42KB | 次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費(fèi)
- 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
- 0.10 MB | 130次下載 | 免費(fèi)
- 4使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
- 2.96 MB | 44次下載 | 免費(fèi)
- 53314A函數(shù)發(fā)生器維修手冊(cè)
- 16.30 MB | 31次下載 | 免費(fèi)
- 6美的電磁爐維修手冊(cè)大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測(cè)試電源的紋波
- 0.36 MB | 17次下載 | 免費(fèi)
- 8感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論