www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式移動(dòng)數(shù)據(jù)庫(kù)SQL Server for Windows CE的應(yīng)用研究

1 引言
嵌入式移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)或簡(jiǎn)稱(chēng)為移動(dòng)數(shù)據(jù)庫(kù)(EMDBS),是專(zhuān)門(mén)運(yùn)行在各種智能型嵌入設(shè)備或移動(dòng)設(shè)備上的小型數(shù)據(jù)庫(kù)系統(tǒng)。目前已經(jīng)成為一個(gè)十分活躍的研究和應(yīng)用領(lǐng)域。

Microsoft SQL Server 2000 Windows CE Edition 2.0版簡(jiǎn)稱(chēng)SQL Server CE 2.0,`是用作快速開(kāi)發(fā)的關(guān)系型精簡(jiǎn)數(shù)據(jù)庫(kù)[1],它將企業(yè)數(shù)據(jù)管理能力擴(kuò)展到了基于Windows CE操作系統(tǒng)的嵌入式移動(dòng)設(shè)備上。SQL Server CE提供遠(yuǎn)程數(shù)據(jù)訪(fǎng)問(wèn)和合并復(fù)制功能,確保了移動(dòng)設(shè)備SQL Server CE數(shù)據(jù)庫(kù)中的數(shù)據(jù)能夠可靠地傳輸、能夠離線(xiàn)操作并在晚些時(shí)候與SQL Server服務(wù)器同步,這些使得SQL Server CE成為移動(dòng)和無(wú)線(xiàn)環(huán)境下理想的數(shù)據(jù)庫(kù)。

本文介紹如何采用基于.NET Compact Framework的ADO.NET技術(shù)開(kāi)發(fā)嵌入式移動(dòng)設(shè)備的數(shù)據(jù)庫(kù)應(yīng)用,并將SQL Server CE 數(shù)據(jù)庫(kù)應(yīng)用于倉(cāng)庫(kù)物料移動(dòng)巡查系統(tǒng)的設(shè)計(jì)方案。

2  .NET 下開(kāi)發(fā)SQL Server CE的方法
在基于Windows CE的嵌入式移動(dòng)設(shè)備上開(kāi)發(fā)SQL Server CE數(shù)據(jù)庫(kù)應(yīng)用可以使用的工具有EVB,EVC和 Visual Studio .NET(vs2003.net或vs2005.net)。使用EVB或EVC時(shí),通過(guò)ADOCE或OLE DB for SQL Server CE訪(fǎng)問(wèn)SQL Server CE數(shù)據(jù)庫(kù),編程比較繁瑣。關(guān)于在EVC,EVB下操作數(shù)據(jù)庫(kù)的方法這里不再贅述,具體可參見(jiàn)文獻(xiàn)[2] 。推薦采用Visual Studio.NET,通過(guò)ADO.NET技術(shù)訪(fǎng)問(wèn)操作SQL Server CE數(shù)據(jù)庫(kù)。

Visual Studio.NET開(kāi)發(fā)嵌入式移動(dòng)設(shè)備時(shí)采用Smart Device Programmability(SDP,智能設(shè)備編程)特性。使用新的C#語(yǔ)言或Visual Basic .NET語(yǔ)言為移動(dòng)或嵌入式設(shè)備開(kāi)發(fā)應(yīng)用程序。在.NET Compact Framework下通過(guò)ADO.NET可方便快捷的訪(fǎng)問(wèn)SQL Server CE數(shù)據(jù)庫(kù)。下面以Visual Basic.net 2003為例簡(jiǎn)述如何通過(guò)ADO.NET實(shí)現(xiàn)對(duì)SQL Server CE數(shù)據(jù)庫(kù)的基本操作。

首先,必須在項(xiàng)目中添加對(duì)System.Data.SqlServerCe組件的引用,System.Data.SqlServerCe 命名空間為 SQL Server CE.NET Framework 精簡(jiǎn)版數(shù)據(jù)提供程序。SQL Server CE.NET Framework精簡(jiǎn)版數(shù)據(jù)提供程序描述了一個(gè)類(lèi)集合,這些類(lèi)可用于在托管環(huán)境下從基于 Windows CE的設(shè)備訪(fǎng)問(wèn) SQL Server CE 中的數(shù)據(jù)庫(kù)。通過(guò)使用System.Data.SqlServerCe,可以在任意設(shè)備上創(chuàng)建 SQL Server CE 數(shù)據(jù)庫(kù),還可以建立指向設(shè)備上或遠(yuǎn)程服務(wù)器上的 SQL Server 數(shù)據(jù)庫(kù)的連接。

應(yīng)用開(kāi)發(fā)中,根據(jù)不同的需求,從System.Data.SqlServerCe 命名空間中選擇相應(yīng)的類(lèi)進(jìn)行操作。例如:SqlCeEngine類(lèi)包含了SQL Server CE 引擎的屬性、方法及其他對(duì)象,可用來(lái)創(chuàng)建一個(gè)新的 SQL Server CE 數(shù)據(jù)庫(kù)。代碼示例如下:

Dim connStr As String = " data source=My DocumentsSampleDB.sdf "

Dim SQLEngine As System.Data.SqlServerCe.SqlCeEngine

SQLEngine = New System.Data.SqlServerCe.Engine (connStr)

以上代碼完成了在My Documents目錄下創(chuàng)建空的名為SampleDB的數(shù)據(jù)庫(kù)。這里還介紹關(guān)于一個(gè)比較常用的類(lèi)——SqlCeCommand,可用來(lái)表示對(duì)數(shù)據(jù)源執(zhí)行的 SQL 語(yǔ)句。當(dāng)需要向已創(chuàng)建的數(shù)據(jù)庫(kù)SampleDB添加一個(gè)名為Bicycle的庫(kù)存表,并定義它的相關(guān)字段時(shí)可用以下代碼實(shí)現(xiàn),其中cn定義了數(shù)據(jù)源的連接,使用了SqlCeConnection類(lèi):

Dim cn As System.Data.SqlServerCe.SqlCeConnection

cn = New  System.Data.SqlServerCe.SqlCeConnection(connStr)

Dim cmd As New System.Data.SqlServerCe.SqlCeCommand(SQLStr, cn)

SQLStr = "CREATE TABLE Bicycle (BicycleID Smallint Primary Key _

        NOT NULL,CompanyName nvarchar(40) NOT NULL, Number int NOT NULL)"

cmd.CommandText = SQLStr

cmd.Connection = cn

cn.Open()

cmd.ExecuteNonQuery()

cmd.Connection.Close()

在手持設(shè)備上用代碼方式或用SQLCE Query創(chuàng)建編輯表單是比較麻煩的過(guò)程,在實(shí)際應(yīng)用中的做法是在初始化時(shí)只建立空的數(shù)據(jù)庫(kù),需要的表單采用RDA(遠(yuǎn)程數(shù)據(jù)訪(fǎng)問(wèn))的Pull方法從SQL Server 2000服務(wù)器上“拉”到先前創(chuàng)建的數(shù)據(jù)庫(kù)中。

3  SQL Server CE 數(shù)據(jù)庫(kù)在倉(cāng)庫(kù)物料巡查系統(tǒng)中的應(yīng)用
倉(cāng)庫(kù)物料巡查傳統(tǒng)上采用的是紙張作業(yè)方式,操作流程是倉(cāng)庫(kù)巡查人員領(lǐng)取物資清單后在出入口進(jìn)行檢查和填寫(xiě)記錄,然后將填好的表格回收到數(shù)據(jù)中心,數(shù)據(jù)中心的工作人員再手工將信息錄入計(jì)算機(jī)系統(tǒng)進(jìn)行處理。缺點(diǎn)是處理周期長(zhǎng),工作人員工作量大,費(fèi)時(shí)費(fèi)力且容易發(fā)生人為錯(cuò)誤。移動(dòng)解決方案中,倉(cāng)庫(kù)巡查人員只需下載對(duì)應(yīng)物料清單到手持PDA上,選用的PDA采用Windows CE操作系統(tǒng)。對(duì)照此清單檢查,現(xiàn)場(chǎng)直接在PDA上記錄,然后將結(jié)果上傳。資料的主要處理過(guò)程主要在后端SQL Server 2000服務(wù)器端處理,包括進(jìn)出物料表單的錄入,檢查結(jié)果報(bào)表的處理、數(shù)據(jù)維護(hù)等。自動(dòng)化程度高,減少了手工錄入處理環(huán)節(jié),PDA具備無(wú)線(xiàn)上網(wǎng)功能后可無(wú)限擴(kuò)展系統(tǒng)的覆蓋范圍。

因?yàn)樾枰螺d物料清單到PDA上,并在PDA上臨時(shí)保存物料清單,所以在PDA上需要有一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)。選擇的移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)即為SQL Server CE 2.0。同時(shí),系統(tǒng)需要考慮手持PDA上SQL Server CE 2.0與數(shù)據(jù)中心SQL Server 2000進(jìn)行雙向的數(shù)據(jù)同步問(wèn)題。

4  SQL Server CE 2.0與SQL Server 2000數(shù)據(jù)同步設(shè)計(jì)
    SQL Server CE與SQL Server之間可以通過(guò)RDA(遠(yuǎn)程數(shù)據(jù)訪(fǎng)問(wèn))和Replication(合并復(fù)制)兩種方式進(jìn)行數(shù)據(jù)同步。

SQL Server CE 2.0復(fù)制功能基于 Microsoft SQL Server 合并復(fù)制。只能與SQL Server 2000配合使用。允許分別在便攜式設(shè)備和服務(wù)器上自行更新數(shù)據(jù)。之后可以對(duì)該設(shè)備和服務(wù)器上的數(shù)據(jù)進(jìn)行同步,以將客戶(hù)端的更改發(fā)送到服務(wù)器,或從服務(wù)器接收新的更改。與 RDA 相比,使用合并復(fù)制卻有許多優(yōu)點(diǎn),如提供了內(nèi)置和自定義的沖突解決功能,通過(guò)復(fù)制可以同時(shí)對(duì)多個(gè)表中的數(shù)據(jù)進(jìn)行同步等。但合并復(fù)制需要在服務(wù)器上進(jìn)行更多的配置和維護(hù)。

遠(yuǎn)程數(shù)據(jù)訪(fǎng)問(wèn) (RDA) 使移動(dòng)應(yīng)用程序能夠訪(fǎng)問(wèn)遠(yuǎn)程 SQL Server 2000 數(shù)據(jù)庫(kù)表中的數(shù)據(jù),并將這些數(shù)據(jù)存儲(chǔ)在本地 SQL Server CE 2.0 數(shù)據(jù)庫(kù)表中。隨后,該應(yīng)用程序就可以讀取和更新本地 SQL Server CE 2.0 數(shù)據(jù)庫(kù)表。SQL Server CE 2.0可以選擇跟蹤對(duì)本地表所做的所有更改。之后,應(yīng)用程序可以將本地表中更改過(guò)的記錄更新回 SQL Server 表。在遠(yuǎn)程數(shù)據(jù)訪(fǎng)問(wèn)過(guò)程中,將數(shù)據(jù)從 SQL Server 表傳播至本地 SQL Server CE 表的過(guò)程稱(chēng)為Pull --“拉”數(shù)據(jù)。將本地 SQL Server CE 表中所做的更改傳播回 SQL Server 表的過(guò)程稱(chēng)為Push --“推”數(shù)據(jù)。此外還有SubmitSQL方法可直接向SQL Server 2000數(shù)據(jù)庫(kù)提交一個(gè)無(wú)返回行的命令執(zhí)行。在不需要使用SQL Server CE 2.0合并復(fù)制的全部功能(包括沖突解決)時(shí),適合使用 RDA方式。[3]

本文采用的解決方案中,服務(wù)器端運(yùn)行SQL Server 2000并采用配置IIS構(gòu)建應(yīng)用服務(wù)器,移動(dòng)端采用PDA并配置SQL Server CE 2.0。移動(dòng)端通過(guò)IIS代理訪(fǎng)問(wèn)服務(wù)器端。對(duì)表單的同步處理采用RDA方式完成。圖1示意了RDA的方式下的數(shù)據(jù)同步[4]。

RDA功能實(shí)現(xiàn)主要由三部分組成:SQL Server CE數(shù)據(jù)庫(kù)引擎、SQL Server CE客戶(hù)端代理和SQL Server CE服務(wù)器端代理。用戶(hù)直接通過(guò)SQL Server CE客戶(hù)端代理即可操作數(shù)據(jù)庫(kù)。SQL Server CE客戶(hù)端代理是RDA在移動(dòng)設(shè)備上的主要組件,它實(shí)現(xiàn)了RDA的主要功能,可以通過(guò)程序調(diào)用它提供的接口以控制RDA;SQL Server CE服務(wù)器端代理位于服務(wù)器端,它與SQL Server CE客戶(hù)端代理通過(guò)HTTP協(xié)議進(jìn)行通信,接收并處理SQL Server CE客戶(hù)端代理的命令。

以下代碼示例如何通過(guò)RDA的Pull方法在移動(dòng)設(shè)備上建立“Localtable”表,并下載SQL Server 2000中相應(yīng)表的數(shù)據(jù)。使用RDA時(shí)需要?jiǎng)?chuàng)建SqlCeRemoteDataAccess對(duì)象。

Private _strRemoteConnect As String

_strRemoteConnect  = "provider=sqloledb;data source= MySqlServer; "

_strRemoteConnect &="Initial Catalog=Test; User Id=sa;Password=sa;"

Private _strLocalConnect As String

_strLocalConnect ="Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0; "

_strLocalConnect&=" Data Source=My DocumentsSampleDB.sdf; "

Const _strInternetURL As String = "http:// 10.1.11.25/ssce20/sscesa20.dll"

‘下載表單過(guò)程DownloadTables(ByVal Localtable As String)

Public Sub DownloadTables(ByVal Localtable As String)

    Try

Dim rda As SqlCeRemoteDataAccess= New SqlCeRemoteDataAccess()

Dim _strSelectTablerToD  As String

_strSelectTablerToD ="SELECT * FROM "+ Localtable

rda.InternetLogin = "user name"

rda.InternetPassword = "password"

    rda.InternetUrl = _strInternetURL

rda.LocalConnectionString = _strLocalConnect

        rda.Pull(Localtable, _strSelectTablerToD, _strRemoteConnect, _

            System.Data.SqlServerCe.RdaTrackOption.TrackingOnWithIndexes)

        ‘只有設(shè)置了數(shù)據(jù)跟蹤選項(xiàng)TrackingOnWithIndexes以后才可以將SQL Server CE

‘中的數(shù)據(jù)“推”回到SQL Server 2000中。

             Catch ex As SqlCeException                

                 ……

    End Try

End Sub

這里指定兩個(gè)重要的參數(shù):①SQL Server CE服務(wù)器端代理的訪(fǎng)問(wèn)地址, SqlCeRemoteDataAccess.InternetUrl;②連接SQL Server CE數(shù)據(jù)庫(kù)的連接字符串:SqlCeRemoteDataAccess.LocalConnectionString;使用了連接SQL Server2000數(shù)據(jù)庫(kù)的連接字符串_strRemoteConnect和選擇相應(yīng)表的SQL語(yǔ)句_strSelectTablerToD。

檢查完畢后,表單上傳采用RDA的Push方法, 用法于PULL基本相同,使用SqlCeRemoteDataAccess類(lèi)的Push方法,示例如下:

rda.Push("Localtable ", _strRemoteConnect, _

             System.Data.SqlServerCe.RdaBatchOption.BatchingOn)

在設(shè)計(jì)SQL Server CE與SQL Server之間數(shù)據(jù)同步方案時(shí)應(yīng)結(jié)合自己的數(shù)據(jù)同步業(yè)務(wù)邏輯靈活選擇運(yùn)用RDA或合并復(fù)制,也可自行設(shè)計(jì)數(shù)據(jù)傳輸和辨認(rèn)規(guī)則。本文所述方案只要求對(duì)物料清單的同步處理,邏輯規(guī)則簡(jiǎn)單,所以采用RDA方式即可便捷實(shí)現(xiàn)。

5結(jié)論
本文介紹了微軟.NET Compact Framework架構(gòu)下,采用ADO.NET開(kāi)發(fā)移動(dòng)設(shè)備SQL Server CE數(shù)據(jù)庫(kù)應(yīng)用的新方法。結(jié)合倉(cāng)庫(kù)物料移動(dòng)巡查系統(tǒng)的設(shè)計(jì)方案研究了嵌入式移動(dòng)數(shù)據(jù)庫(kù)SQL Server CE 2.0和SQL2000的數(shù)據(jù)同步問(wèn)題。SQL Server CE是目前市場(chǎng)上較為成熟的嵌入式移動(dòng)數(shù)據(jù)庫(kù)產(chǎn)品,應(yīng)用領(lǐng)域正逐步擴(kuò)大,而采用.NET技術(shù)開(kāi)發(fā)其相關(guān)應(yīng)用將是今后的主流。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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