當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式SQL CE在圖書外采查重系統(tǒng)中的應(yīng)用

圖書采購是圖書館日常工作的重要內(nèi)容,隨著讀者信息需求的不斷提高,圖書館需要到書市或書店現(xiàn)場采購圖書,面對大量不同專業(yè)和類別的圖書,很容易重復(fù)采購。目前圖書外采查重方法有人工記憶查重、計算機(jī)二次查重、筆記本電腦查重、數(shù)據(jù)采集器查重、遠(yuǎn)程登錄查重等。但在圖書外采現(xiàn)場,由于空間狹窄,缺乏網(wǎng)絡(luò)和電源支持,常用的幾種查重方法都各有優(yōu)缺點。
    圖書外采查重的關(guān)鍵是在外采現(xiàn)場能準(zhǔn)確獲取館藏圖書數(shù)據(jù),避免重復(fù)采購。本文設(shè)計的圖書外采查重系統(tǒng)基于Windows Mobile智能手機(jī),將嵌入式數(shù)據(jù)庫SQL Server CE應(yīng)用到系統(tǒng)設(shè)計中,實現(xiàn)智能手機(jī)的存儲數(shù)據(jù)與圖書館數(shù)據(jù)同步,采購人員由此掌握館藏信息,快速準(zhǔn)確地識別和記錄圖書信息,防止圖書重復(fù)采購。
1 嵌入式數(shù)據(jù)庫系統(tǒng)開發(fā)
1.1 SQL Server 2005 Compact Edition

    嵌入式數(shù)據(jù)庫是指可以在嵌入式移動設(shè)備上運(yùn)行的數(shù)據(jù)庫,SQL Server 2005 Compact Edition(簡稱SQL Server CE)是當(dāng)前比較流行的嵌入式數(shù)據(jù)庫系統(tǒng)之一,是運(yùn)行于Windows Mobile下的關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL Server CE為移動設(shè)備提供了一個壓縮的數(shù)據(jù)庫解決方案,可以將SQL Server 2000/2005(簡稱SQL Server)大型數(shù)據(jù)庫的管理能力擴(kuò)展到移動設(shè)備上。
    SQL Server CE以很小的內(nèi)存(3 MB~5 MB)開銷提供了精簡的關(guān)系數(shù)據(jù)庫,具有強(qiáng)大的數(shù)據(jù)存儲、優(yōu)化的查詢處理,以及可靠、可擴(kuò)展和可調(diào)整的連接等功能,并為開發(fā)人員的快速應(yīng)用程序開發(fā)提供了一致的編程接口(OLEDB、ADO.NET)。SQL Server CE是創(chuàng)建企業(yè)級的 Windows Mobile 離線數(shù)據(jù)解決方案。
1.2 開發(fā)環(huán)境
    智能手機(jī)是指具有開放式操作系統(tǒng)的手機(jī),開發(fā)人員可根據(jù)操作系統(tǒng)提供的應(yīng)用編程接口為手機(jī)開發(fā)各種擴(kuò)展功能。智能手機(jī)操作系統(tǒng)主要有Symbian、Windows Mobile、Linux、Palm OS、Android、Mac OS X、BlackBerry、OMS等。其中,Windows Mobile是微軟為智能手機(jī)推出的操作系統(tǒng),將用戶熟悉的桌面Windows擴(kuò)展到移動設(shè)備上。Windows Mobile操作系統(tǒng)包括Pocket PC、Smart Phone及Pocket PC Phone(簡稱PPC),其中PPC主要用于掌上電腦型智能手機(jī)。本文圖書外采查重系統(tǒng)設(shè)計就選用PPC平臺。
    應(yīng)用于Windows Mobile智能手機(jī)操作系統(tǒng)的開發(fā)語言有Java(J2ME)、C++、Embedded VB、Embedded VC、C#等。圖書外采查重系統(tǒng)選用Visual Studio.NET 2008集成開發(fā)環(huán)境、C#開發(fā)語言。C#是一種強(qiáng)大、簡單、面向?qū)ο蟮木幊陶Z言,是微軟新一代開發(fā)工具Visual Studio.NET的經(jīng)典編程語言,C#既保持了C++的語法,還包含了大量的高效代碼和面向?qū)ο筇匦?,為開發(fā)人員帶來更高效的開發(fā)環(huán)境。
    微軟在推出智能手機(jī)操作系統(tǒng)后,考慮手機(jī)的硬件條件制約,推出了.Net Framework的精簡版,這就是.NET Compact Framework[1],在開發(fā)環(huán)境中安裝Visual Studio.NET 2008簡體中文版,同時安裝.NET Compact Framework 3.5以及仿真設(shè)備、SDK等。
1.3 客戶端與服務(wù)器環(huán)境
    SQL Server CE的運(yùn)行環(huán)境是典型的客戶端/服務(wù)器環(huán)境,如圖1所示??蛻舳谁h(huán)境是Windows Mobile應(yīng)用程序的運(yùn)行環(huán)境,也是SQL Server CE數(shù)據(jù)庫的運(yùn)行環(huán)境,通過微軟Activesync程序(使用USB、串口、藍(lán)牙或Wi-Fi網(wǎng)絡(luò))可以將智能手機(jī)連接到服務(wù)器環(huán)境;服務(wù)器環(huán)境是運(yùn)行Internet信息服務(wù)(簡稱IIS)和SQL Server數(shù)據(jù)庫的環(huán)境,IIS和SQL Server既可以運(yùn)行在一臺機(jī)器上,也可以運(yùn)行在不同的機(jī)器上。SQL Server CE與SQL Server之間可以通過遠(yuǎn)程數(shù)據(jù)訪問RDA(Remote DataAccess)和合并復(fù)制(Replication)兩種方式進(jìn)行數(shù)據(jù)同步。

[!--empirenews.page--]

1.4 遠(yuǎn)程數(shù)據(jù)訪問RDA
    圖書館都有圖書館自動化集成系統(tǒng),數(shù)據(jù)都存儲在大型數(shù)據(jù)庫系統(tǒng)中,例如Oracle、SQL Server 2000/2005、Sybase等。在任何一個分布式移動應(yīng)用環(huán)境中,移動設(shè)備與數(shù)據(jù)中心的數(shù)據(jù)交互是要解決的重點問題,在系統(tǒng)設(shè)計中,如何實現(xiàn)智能手機(jī)中的數(shù)據(jù)庫與圖書館數(shù)據(jù)庫一致最為關(guān)鍵,這就是數(shù)據(jù)同步。
    SQL Server CE數(shù)據(jù)庫通過IIS和遠(yuǎn)程數(shù)據(jù)訪問RDA與SQL Server數(shù)據(jù)庫進(jìn)行通信,遠(yuǎn)程數(shù)據(jù)訪問RDA為智能手機(jī)應(yīng)用程序訪問SQL Server數(shù)據(jù)庫提供了一種簡單的訪問方式,可以將SQL Server數(shù)據(jù)庫的數(shù)據(jù)下載到智能手機(jī)的SQL Server CE數(shù)據(jù)庫中,也可以將智能手機(jī)的數(shù)據(jù)寫入到SQL Server 數(shù)據(jù)庫中,這樣就實現(xiàn)了數(shù)據(jù)同步,RDA非常適合開發(fā)離線數(shù)據(jù)解決方案。
    圖書外采查重系統(tǒng)使用遠(yuǎn)程數(shù)據(jù)訪問RDA技術(shù)實現(xiàn)了數(shù)據(jù)同步,RDA主要由SQL Server CE數(shù)據(jù)庫引擎、SQL Server CE客戶端代理和SQL Server CE服務(wù)器端代理三部分組成。并且RDA提供了如下三個主要方法實現(xiàn)SQL Server CE與SQL Server數(shù)據(jù)同步。
    (1)Pull方法:將SQL Server數(shù)據(jù)庫中的表“拉”到SQL Server CE中。在調(diào)用此方法時,可以設(shè)置數(shù)據(jù)跟蹤選項,如果設(shè)置數(shù)據(jù)跟蹤,則SQL Server CE數(shù)據(jù)庫引擎會自動跟蹤對數(shù)據(jù)的插入、修改和刪除操作。
    (2)Push方法:如果在Pull時設(shè)置了數(shù)據(jù)跟蹤選項,可以將SQL Server CE中的數(shù)據(jù)“推”回到SQL Server中,在SQL Server CE中對數(shù)據(jù)的任何修改都會反映到SQL Server中。
    (3)SubmitSQL方法:直接向SQL Server數(shù)據(jù)庫提交一個命令。
2 系統(tǒng)設(shè)計與實現(xiàn)
2.1 建立數(shù)據(jù)庫

    嵌入式數(shù)據(jù)庫SQL Server CE的數(shù)據(jù)存儲在一個擴(kuò)展名為.SDF的文件中,SQL Server CE 只支持一次一個鏈接,但多個命令可以共享同一鏈接。.NET Compact Framework下開發(fā)SQL Server CE統(tǒng)一使用System.Data.SqlServerCe.DLL[2],該DLL封裝的命名空間和類是一致的,在VS2008下開發(fā)默認(rèn)使用的.NET Compact Framework版本是3.5,默認(rèn)使用的SQL Server CE版本是3.5,一般存放在C:Program FilesMicrosoft SQL Server Compact Editionv3.5Devices路徑下。在智能手機(jī)上創(chuàng)建一個空的本地SQL Server CE數(shù)據(jù)庫,建立數(shù)據(jù)庫程序代碼如下:
     //創(chuàng)建SQL Server CE數(shù)據(jù)庫文件LIBRARY.SDF
     using System.Data.SqlServerCe;
    string strConn="DATASOURCE="+dbPath+@"LIBRARY.SDF";
    SqlCeEngine engine=new SqlCeEngine(strConn);
    engine.CreateDatabase();
    engine.Dispose();
2.2 數(shù)據(jù)同步
    數(shù)據(jù)同步功能指通過遠(yuǎn)程數(shù)據(jù)訪問RDA從圖書館自動化集成系統(tǒng)SQL Server數(shù)據(jù)庫將藏書數(shù)據(jù)下載到智能手機(jī)的LIBRARY.SDF數(shù)據(jù)庫中。遠(yuǎn)程數(shù)據(jù)訪問RDA需要用到.NET Compact Framework 3.5中System.Data.SqlServerCe命名空間中的SqlCeRemoteDataAccess類[3-4],數(shù)據(jù)同步程序代碼如下:
    //引用命名空間SqlCeRemoteDataAccess
    using SqlCeRemoteDataAccess;
    //實例化并配置遠(yuǎn)程數(shù)據(jù)訪問
//SQLCeRemoteDataAccess對象
    SqlCeRemoteDataAccess rda=new SqlCeRemoteDataAccess();
    rda.InternetUrl="http://216.210.98.2/SQLServerMobile/
SQLcesa30.dll";
    rda.InternetLogin="IISUserName";
    rda.InternetPassword="IISPassword";
    rda.LocalConnectionString="DATASOURCE="+dbPath+
@"LIBRARY.SDF";
    //從SQL Server數(shù)據(jù)庫中同步數(shù)據(jù)
    rda.Pull("Books","SELECT ISBN,Title,Author,BookConcern,Amount FROM Books","Provider=SQLOledb;Server=LIS_Server;Database=LIS;uid=GD;pwd=GD;",RdaTrackOption.TrackingOnWithIndexes,"ErrorTable");
2.3 圖書查重設(shè)計
    通過遠(yuǎn)程數(shù)據(jù)訪問RDA將圖書館自動化集成系統(tǒng)中的藏書數(shù)據(jù)同步到智能手機(jī)的數(shù)據(jù)庫LIBRARY.SDF中,圖書外采時,智能手機(jī)應(yīng)用程序鏈接SQL Server CE數(shù)據(jù)庫LIBRARY.SDF,檢索Books數(shù)據(jù)表中是否有相關(guān)圖書記錄。
    開發(fā)手機(jī)數(shù)據(jù)庫程序所用到的控件和類與開發(fā)桌面數(shù)據(jù)庫程序具有相似性,如SqlCeConnection對應(yīng)SqlConnection,SqlCeDataAdapter對應(yīng)SqlDataAdapter,SqlCeCommand對應(yīng)SqlCommand等。圖書外采查重系統(tǒng)基于.NET Compact Framework3.5設(shè)計,要在智能手機(jī)上創(chuàng)建、管理和查詢SQL Server CE數(shù)據(jù)庫,必須在程序中添加對System.Data.SqlServerCe的引用,圖書查重程序代碼如下:
    //命名空間System.Data.SqlServerCe    using System.Data.SqlServerCe;
    //創(chuàng)建SqlCeConnection對象,鏈接數(shù)據(jù)庫文件LIBRARY.SDF
    SqlCeConnection objCeConnection=new SqlCeConnection("DATASOURCE="+dbPath+@"LIBRARY.SDF");
    objCeConnection.Open();    //根據(jù)ISBN號,生成圖書查詢SQL語句
    SQLText = "SELECT×FROM Books WHERE ISBN="+txtISBN.Text;
    //創(chuàng)建SqlCeCommand對象
    SqlCeCommand objCeCommand=new SqlCeCommand(objCeConnection);
    objCeCommand.CommandText=SQLText;
    //創(chuàng)建SqlCeDataReader對象
    SqlCeDataReader objCedr=objCeCommand.ExecuteReader();
    //查詢館藏圖書是否存在
    if (!objCedr.Read())
        {  listBox.Items.Add("館藏沒有ISBN號=
"+txtISBN.Text+"圖書,可以采購。");}
    else
        {
        listBox.Items.Add("ISBN號:"+objCedr["ISBN"].ToString());
        listBox.Items.Add("書名:"+objCedr["Title"].ToString());
        listBox.Items.Add("作者:"+objCedr["Author"].ToString());
        listBox.Items.Add("出版社:"+objCedr["BookConcern"].ToString());
        listBox.Items.Add("藏書數(shù)量:"+objCedr["Amount"].ToString()+"本");
        listBox.Items.Add("館藏圖書已有,建議不要采購!");
        }[!--empirenews.page--]
3 系統(tǒng)應(yīng)用情況
3.1 系統(tǒng)功能

    圖書外采查重系統(tǒng)功能包括圖書查重、參數(shù)設(shè)置、數(shù)據(jù)管理等。
    參數(shù)設(shè)置主要是設(shè)置遠(yuǎn)程訪問SQL Server數(shù)據(jù)庫的用戶名和密碼,訪問IIS的用戶名和密碼參數(shù),以及系統(tǒng)應(yīng)用背景圖片、信息提示等,如圖2所示。


    圖書查重方式有根據(jù)ISBN號查重和根據(jù)書名、作者、出版社等組合查重[5],其中根據(jù)ISBN號查重方式是主要查重方式。ISBN是國際標(biāo)準(zhǔn)書號International Standard Book Number的簡稱,通常每本書都有全球唯一的ISBN號,通過帶有藍(lán)牙接口的條碼槍掃描圖書ISBN條形碼,就可以檢索數(shù)據(jù)庫中的圖書,如果有,就會顯示館藏圖書的詳細(xì)信息,同時發(fā)出“嘀嘀嘀”的語音提示,圖書查重界面如圖3所示。

3.2 系統(tǒng)應(yīng)用
    圖書外采查重系統(tǒng)應(yīng)用流程是:外出購書前,工作人員將圖書館自動化集成系統(tǒng)中的最新藏書數(shù)據(jù)同步到智能手機(jī),生成數(shù)據(jù)庫文件LIBRARY.SDF,拷貝到智能手機(jī)存儲卡中。圖書外采時,工作人員在智能手機(jī)上通過查重系統(tǒng)檢索LIBRARY.SDF數(shù)據(jù)庫中是否有相關(guān)的圖書記錄,由于查重是在智能手機(jī)上進(jìn)行,不需要網(wǎng)絡(luò)連接,因此速度很快。
    系統(tǒng)設(shè)計成功運(yùn)行于多普達(dá)S700智能手機(jī),操作系統(tǒng)Windows Mobile 6.1簡體中文版,主頻500 MHz,256 MB ROM、128 MB RAM、4 GB存儲卡,2.8英寸、66536色TFT彩色屏幕、分辨率240×320像素。
    本文設(shè)計的圖書外采查重系統(tǒng)操作簡單、體積小、重量輕、方便攜帶,不需要網(wǎng)絡(luò)和外接電源支持(可配多塊電池),省時、省力、準(zhǔn)確、高效,可以適應(yīng)復(fù)雜的圖書外采現(xiàn)場,達(dá)到事半功倍的效果。應(yīng)用嵌入式數(shù)據(jù)庫SQL Server CE存儲數(shù)據(jù),數(shù)據(jù)存儲量大,通過數(shù)據(jù)同步,智能手機(jī)與館藏圖書信息直接對接,準(zhǔn)確掌握館藏圖書數(shù)據(jù),防止圖書重復(fù)采購。系統(tǒng)設(shè)備投資不高(一部中檔Windows Mobile智能手機(jī)約2 000元左右),收效顯著,是適用于圖書館外采查重的最佳方案。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉