亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SQLite在嵌入式系統(tǒng)Wince中的應(yīng)用

        2011-05-12 02:47:28郝繼飛
        關(guān)鍵詞:數(shù)據(jù)源控件嵌入式

        蔣 晶,郝繼飛,于 平

        (中國(guó)礦業(yè)大學(xué) 信息與電氣工程學(xué)院,江蘇 徐州221008)

        隨著科學(xué)技術(shù)的發(fā)展,嵌入式系統(tǒng)成為了科技發(fā)展的主要領(lǐng)域,Linus和Wince是比較常見(jiàn)的嵌入式系統(tǒng)。嵌入式開(kāi)發(fā)過(guò)程離不開(kāi)數(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è)開(kāi)源的嵌入式關(guān)系數(shù)據(jù)庫(kù),結(jié)構(gòu)緊湊,可靠性強(qiáng)[3]。有以下特點(diǎn):

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

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

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

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

        (5)支持多個(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寫(xiě)程序時(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ě)程序,但是在新建項(xiàng)目中選擇智能設(shè)備時(shí)要選擇.NET2.0平臺(tái)。在Visual Studio 2008中用C#編寫(xiě)程序時(shí),第一次使用時(shí)要添加引用System.Data.SQLite,在程序中添加using指令集,這樣可以通過(guò)軟件編寫(xiě)程序?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顯示了Data-Grid在Wince中的屬性。

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

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

        (1)通過(guò)SQLiteConnection對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接[6],通過(guò)軟件建數(shù)據(jù)庫(kù),首先要有數(shù)據(jù)源,如:

        SQLiteConnectionconn=new SQLiteConnection("Data Source=\Program Files\maindata.db");

        對(duì)數(shù)據(jù)庫(kù)要進(jìn)行操作需要執(zhí)行的命令,如SQLiteCommand cmd=new SQLiteCommand();

        (2)每次使用數(shù)據(jù)庫(kù)前需要打開(kāi)數(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,Bed-Num,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é)果。如圖3所示。

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

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

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

        [1]OWENS M.The definitive guide to SQLite[M].US:APress,2006.

        [2]周毓林,寧陽(yáng),陸貴強(qiáng),等.Windows CE.net內(nèi)核定制及應(yīng)用開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2005.

        [3]萬(wàn)瑪寧,關(guān)永,韓相軍.嵌入式數(shù)據(jù)庫(kù)典型技術(shù)SQLite和Berkeley DB 的研究[J].微計(jì)算機(jī)信息,2006,22(2):91-92.

        [4]HENDERSON K.Transact-SQL權(quán)威指南[M].健蓮科技譯,北京:中國(guó)電力出版社,2002.

        [5]An introduction to the SQLite C/C++interface[CP].http://www.sqlite.org/cintro.html.

        [6]胡偉.SQLite在嵌入式系統(tǒng)上的實(shí)現(xiàn)研究[J].計(jì)算機(jī)與數(shù)字工程,2009,37(2):46-47.

        [7]MierosoftWindowsMobile.http://www.mierosoft.eoInjwindowsmobile/default.msPx.

        [8]劉彥博,胡硯,馬駭.WindowsMobile平臺(tái)應(yīng)用與開(kāi)發(fā)[M].北京:人民郵電出版社,2006.

        [9]NEWMAN C.SQLite[M],USA:Sams,2004.

        [10]ROB P.數(shù)據(jù)庫(kù)設(shè)計(jì)與開(kāi)發(fā)教程[M].于書(shū)舉,許向眾,韓德強(qiáng),等譯,北京:電子工業(yè)出版社,2002.

        [11]鄧成中,黃惟公,萬(wàn)松峰.基于嵌入式ARM&WinCE的小型監(jiān)控系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,21(23):47-49.

        猜你喜歡
        數(shù)據(jù)源控件嵌入式
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
        基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
        Altera加入嵌入式視覺(jué)聯(lián)盟
        倍福 CX8091嵌入式控制器
        分布式異構(gòu)數(shù)據(jù)源標(biāo)準(zhǔn)化查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)
        就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        亚洲日本无码一区二区在线观看| 国精产品推荐视频| 亚洲暴爽av人人爽日日碰| 色吊丝中文字幕| 亚洲av之男人的天堂| 欧美—iGAO视频网| 国产午夜精品视频在线观看| 国产综合色在线精品| 国产欧美亚洲精品a| 亚洲a人片在线观看网址| 亚洲国产一区二区av| 久久久久亚洲av成人片| 狠狠色丁香久久婷婷综合蜜芽五月 | 97人妻人人做人碰人人爽| 久久男人av资源网站无码| 国产av综合一区二区三区最新| 男女视频在线观看一区二区| 7194中文乱码一二三四芒果| 日本顶级metart裸体全部| 免费无码又爽又刺激聊天app| 日韩在线免费| 人妻熟女中文字幕在线视频| 白白白在线视频免费播放| 黑人巨大跨种族video| 亚洲偷自拍另类图片二区| 亚洲国产综合一区二区| 国产69精品久久久久9999apgf| 久久综合给合综合久久| 中文字幕AⅤ人妻一区二区 | 亚洲精品中国国产嫩草影院美女 | 99在线精品国产不卡在线观看| 风韵丰满妇啪啪区老老熟女杏吧| 中文字幕在线亚洲三区 | 亚洲成人免费网址| 久久婷婷夜色精品国产| 亚洲综合另类小说色区| 少妇寂寞难耐被黑人中出| 一区二区丝袜美腿视频| 自拍偷拍 视频一区二区| 国产亚洲午夜高清国产拍精品 | 人妻无码一区二区在线影院|