女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]首先介紹了SQLite嵌入式數(shù)據(jù)庫的結(jié)構和特點與選擇必要性及應用到嵌入式系統(tǒng)Wince中的優(yōu)點;其次介紹以ARM9與Wince6.0為平臺,在Visual Studio 2008中開發(fā)的嵌入式數(shù)據(jù)庫。通過研究DataGrid在Windows mobile中自動設置列寬的方法,本設計通過軟件編程解決了基于Wince6.0的ARM9嵌入式設備中存在的問題,并分析通過DataGrid屬性中TableStyles未改變列寬的原因。

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

1 SQLite數(shù)據(jù)庫的介紹與選擇

1.1 SQLite數(shù)據(jù)庫結(jié)構

SQLite數(shù)據(jù)庫結(jié)構圖如圖1所示。


1.2 SQlite數(shù)據(jù)庫的特點

SQLite是一個開源的嵌入式關系數(shù)據(jù)庫,結(jié)構緊湊,可靠性強[3]。有以下特點:

(1)使用非常簡單。只需要掌握3個核心API函數(shù),大多數(shù)的SQL[4]語句都可以使用。

(2)占用很少的存儲器空間。SQLite完全獨立,數(shù)據(jù)庫引擎和應用程序在同一系統(tǒng)進程中,因此運行速度較高。

(3)支持ACID事務,在系統(tǒng)出現(xiàn)問題或電源斷電時不會出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。

(4)支持多種語言,像C/C++/C#等。

(5)支持多個嵌入式操作系統(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具有良好的移植性,可以應用到多個嵌入式系統(tǒng),而SQL Server CE只能在Wince中運行。

3 SQLite的應用硬件及軟件平臺

本文探討中以S3C2440作為處理器ARM9的硬件平臺,以Wince6.0為應用系統(tǒng),支持.NET2.0平臺。在Visual Studio 2008軟件平臺中用 C#中編寫程序,但是在新建項目中選擇智能設備時要選擇.NET2.0平臺。在Visual Studio 2008中用C#編寫程序時,第一次使用時要添加引用System.Data.SQLite,在程序中添加using指令集,這樣可以通過軟件編寫程序?qū)崿F(xiàn)建庫建表的功能。

4 SQLite在Wince中的應用實例

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ù)這一問題正是本設計所要解決的。圖2顯示了DataGrid在Wince中的屬性。


4.2 SQLite建數(shù)據(jù)庫的步驟

SQLite建數(shù)據(jù)庫的步驟如下:

(1)通過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();

(2)每次使用數(shù)據(jù)庫前需要打開數(shù)據(jù)庫,還需要連接數(shù)據(jù)庫,關閉數(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′)";

(5)數(shù)據(jù)庫至此建成,由于插入的時間單元格不能完全顯示,因此需要通過對圖2中標注有灰色背景的TableStyles進行設置[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);

上面是對表中第一列進行的寬度設置主要是對DataGridTableStyle中列的格式進行設置,這就解決了顯示文本過長的問題。第二列設置80,第三列設置了170,在Wince中運行的結(jié)果。如圖3所示。


4.3 Wince通過DataGrid屬性建數(shù)據(jù)庫的分析

DataGrid在應用于基于Wince的Windows mobile[7]智能設備時,主要針對DataGridTableStyle屬性進行設置[8]。根據(jù)應用于Windows mobile的原理對基于Wince的ARM9的嵌入式設備中建數(shù)據(jù)庫還是行不通。對其列的屬性進行操作設置仍然改變不了列的寬度,所以這種路徑行不通。試了很多種方法,最后通過軟件編程進行設置,得到了圖3的結(jié)果。比較DataGridTableStyl進行設置與軟件設置發(fā)現(xiàn),問題在于表的MappingName與列的MappingName設置時,必須對應才能實現(xiàn)修改功能。用DataGridTableStyle設置,如果列的MappingName與數(shù)據(jù)庫中的建表的列不對應,則映射不存在,從而找不到網(wǎng)格去顯示數(shù)據(jù),更無法對數(shù)據(jù)的列寬進行操作。所以通過軟件編程,可以對建在緩存區(qū)域中的每一張表中所有的列進行操作,解決文本過長不能完全顯示的問題。

通過上面的介紹可以看出,SQLite作為開源的嵌入式數(shù)據(jù)庫應用在Wince中的一個優(yōu)點就是建表比較簡單,不像SQL CE數(shù)據(jù)庫[9],在Wince運行中需要先創(chuàng)建表,把所建的數(shù)據(jù)庫放在Wince的系統(tǒng)中,添加數(shù)據(jù)源時再去綁定這個數(shù)據(jù)源。對于在.net2.0平臺建立的數(shù)據(jù)庫[10],添加數(shù)據(jù)源時無法找到路徑,所以這種方法不可行。通過SQLite軟件創(chuàng)建數(shù)據(jù)庫的方法則可以改善上述不足。SQLite作為一款小巧的嵌入式數(shù)據(jù)庫,發(fā)展前景很大,在基于ARM的Wince操作系統(tǒng)有著廣泛應用[11]。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

摘 要:啟動裝載程序是嵌入式系統(tǒng)的重要組成部分。文章結(jié)合在ARM平臺上廣泛使用的U-Boot,詳細討論了Boot Loader開發(fā)中用到的主要技術,分析引導程序的執(zhí)行流程,提出了WinCE和Linux在ARM平臺下...

關鍵字: 啟動裝載程序 U-Boot 嵌入式系統(tǒng) WinCE Linux

摘 要:火車貨運在高速發(fā)展的同時,也帶來了越來越多的不安全因素,貨運物資被盜是鐵路貨運事故的主要原因之一。 基于此,設計和實現(xiàn)了基于ZigBee和WinCE技術的火車貨運防盜預警系統(tǒng),用于解決站停、待編、待卸和運行途中...

關鍵字: 火車貨運 智能防盜 Zigbee WinCE PDA軟件

電源大家都知道,為我們的社會的發(fā)展,貢獻了很大的能量,現(xiàn)有的所有的電子產(chǎn)品都離不開電源,那么你知道電源管理嗎?伴隨著移動嵌入式產(chǎn)品的普及,電源管理已經(jīng)成為重要技術指標和產(chǎn)品的有機組成。典型移動嵌入式設備對能耗越來越敏感,...

關鍵字: 電源管理 WinCE 有機組成

  醫(yī)療解決方案目的的臨界性是免除干擾影響的重要因素。雖然無線局域網(wǎng)絡、藍牙低功耗技術等無線接口本身可用于較大規(guī)模的網(wǎng)絡運作,而且該項低功耗技術能改善原本藍牙技術所采用的多項組件,然而,裝置操作環(huán)境中

關鍵字: Android 數(shù)據(jù)庫 游戲開發(fā) sqlite

  車載操作系統(tǒng)(AutomoTIve OperaTIng System,簡稱AOS)是管理和控制車載硬件與車載軟件資源的程序系統(tǒng),是直接運行在AB上的最基本的系統(tǒng)軟件,任何上層軟件,HMI,數(shù)

關鍵字: iOS Linux WinCE

作為針對Red Hat Enterprise Linux的最后一步,F(xiàn)edora的Red Hat開發(fā)人員計劃將以前使用的Berkeley DB RPM數(shù)據(jù)庫(RPMDB)切換到SQLite。

關鍵字: berkeley Linux sqlite rpm數(shù)據(jù)庫

作者:朱金燦來源:http://blog.csdn.net/clever101??? ??????? 在并發(fā)訪問sqlite數(shù)據(jù)庫會出現(xiàn)這樣一個錯誤:databseis locked,這是sqlite

關鍵字: sqlite

原文轉(zhuǎn)載于:https://www.cnblogs.com/5211314jackrose/p/5816066.html1、異步I/O模式?? ?通常,當SQLite寫一個數(shù)據(jù)庫文件時,會等待,直到寫

關鍵字: sqlite

Singleton 單例模式,又叫單子模式,是一種常見的軟件設計模式。這種模式的特點就是應用了?Singleton 單例模式的類必須保證始終只有一個實例(對象)存在。許多時候系統(tǒng)中需要某個類只能同時存

關鍵字: sqlite

????今天在Qt for Android跑離線數(shù)據(jù),要使用到Sqlite數(shù)據(jù)庫,當時是在pc端跑過了的,一切流程都很ok了,所以就準備轉(zhuǎn)移到安卓設備上面試一試,發(fā)現(xiàn)剛運行初始化Sqlite時就出現(xiàn)了

關鍵字: qml sqlite localstorage
關閉