RDA实现SQL CE和MS SQL间数据存取

2008-04-02 10:33:16来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  本文介绍如何利用 RDA(RemoteDataAccess远程数据存取)实现掌上电脑Pocket PC(简称PPC)上的SQL Server CE 2.0和桌面SQL Server 2000数据库间的数据存取。我们将采用Visual Basic .Net 2003进行智能设备端的程式研发。

  一、 概述

  PPC程式和桌面PC进行通信的编程方式现在有两种,1、利用Socket编程和桌面程式进行通信;2、利用RDA和Replication(复制)进行数据库编程来完成和桌面SQL Server数据库的存取。利用Socket编程实际上就是通过TCP/IP协议和桌面PC进行通信,他能够很方便的传输一般类型的数据,譬如:字符串、整数连同字节等,但是假如需要传输类型化的数据则需要程式员自己去封装,而且若想由智能设备从桌面数据库引擎中返回指定数据库表的数据,必须编写桌面接口服务程式来查询数据并将结果通过Socket返回给智能设备。那么如何才能在Pocket PC上做到像在桌面PC上相同存取本地数据库甚至是远程桌面PC的数据库呢?通过在智能设备Pocket PC上运行的SQL Server CE 我们便能够轻松存取放置在Pocket PC上的SQL Server CE数据库,还能够通过SQL Server CE中的RDA或合并复制快速实现从智能设备上存取远程桌面SQL Server2000的数据库。

  二、技术要点

  SQL Server CE 全名是Microsoft SQL Server 2000 Windows CE Edition,他为移动智能设备和嵌入式设备提供了一种存取轻量级数据库的解决方案。通过使用Microsoft Visual Studio .NET 或 Microsoft eMbedded Visual Tools等研发工具,我们能够将SQL Server的企业数据管理能力扩展到基于Windows CE的智能平台之上。SQL Server CE能够应用到三种典型的环境中:

  1、研发环境,即用于研发基于SQL Server CE程式的桌面PC,该桌面PC必须包括Microsoft Visual Studio .NET或Microsoft eMbedded Visual Tools 3.0和Pocket PC SDK研发工具;

  2、客户端环境,是用于运行基于SQL Server CE程式的Pocket PC设备,当设备没有可用的网络连接时,能够使用Microsoft ActiveSync来和服务器环境桌面PC进行线缆连接;

  3、服务器环境,是运行Microsoft Internet Information 服务(IIS) 和Microsoft SQL Server实例的电脑,能够将IIS和SQL Server部署在同一台已算机上,也能够分别配置到多台计算上。RDA和合并复制都需要通过IIS来和SQL Server进行通信。

  SQL Server CE 依靠几个组件来和SQL Server进行数据交换:

  1、数据库引擎用于管理基于Windows CE设备上的数据存储,并且跟踪数据库记录的添加、更新和删除操作;

  2、SQL Server CE Client Agent 是运行在Windows CE设备上的用于连接的组件,包括复制对象、RDA对象和数据库引擎,使用这些对象应用程式能够控制和SQL Server的连接;

  3、SQL Server CE Server Agent 处理来自SQL Server CE Client Agent的Http请求。当SQL Server CE Client Agent通过Http协议向SQL Server CE Server Agent发送请求时,SQL Server CE Server Agent会和SQL Server进行连接并将查询的记录集通过Http协议再传回给SQL Server CE Client Agent,任何数据的传送都要依赖IIS来完成。

  由上述通信过程我们知道,SQL Server CE 的远程连接和存取需要使用Web传输协议Http 或Https,SQL Server CE Client Agent必须运行在Windows CE设备上,SQL Server CE Server Agent则运行在桌面PC上,而且该电脑还必须安装有IIS以便使用RDA 或合并复制来和SQL Server通信。SQL Server CE 支持的网络连接有以太网、无线局域网和无线广域网。通过使用Microsoft ActiveSync,Pocket PC设备能够使用串口、红外线或USB直接和桌面PC上的SQL Server连接,也能够进行SQL Server CE和桌面SQL Server 的连接测试。

  Remote Data Access (RDA)对象是Microsoft SQL Server 2000 Windows CE (SQL Server CE)用于可编程存取远程Microsoft SQL Server 2000 或Microsoft SQL Server version 7.0 数据库的ActiveX控件,我们能够使用RDA存取远程数据库就像是在桌面PC上操作本地数据库相同简单。

  三、设计思路

  我们将使用Visual Basic .Net创建“任务管理程式 For PPC”项目来展示如何利用RDA来完成PPC和PC间的数据库连接和存取。一名客户经理助理或销售人员必须知道今天都要完成哪些任务,上级领导对自己都有哪些安排等等信息,虽然能够使用Email或IM程式进行接收和查看,但是假如我们只拿Pocket PC设备能否完成任务的接收呢?答案当然是肯定的。

  在Pocket PC上我们创建数据库客户端程式,编写RDA程式需要用到.net压缩框架中System.Data.SqlServerCe命名空间中的SqlCeRemoteDataAccess类。从桌面PC查询并获取记录集到Pocket PC上我们需要使用rda.pull方法,pull有多种重载版本,我们使用最常用的版本,localTableName 是将要接收提取的 SQL Server 记录的 SQL Server CE 本地表的名称。sqlSelectString 为任何有效的 Transact-SQL 语句,包括 SELECT 语句和存储过程,他们指定从远程 SQL Server 数据库中提取哪些表、列和记录以存储在 SQL Server CE 数据库中。 oledbConnectionString 是连接 SQL Server 数据库时使用的 OLE DB 连接字符串。 trackOption 表示 SQL Server CE 是否跟踪对提取表所做的更改,连同提取的表上存在的索引是否转到具备主键约束的设备。我们使用的版本为:

….
rda.Pull("itemlist", "Select * from itemlist where emp_id='" EMPId "'", RemoteConnString, RdaTrackOption.TrackingOnWithIndexes)
….

  TrackingOnWithIndexes指示 SQL Server CE跟踪对所提取表的任何更改。在本地表上同时创建 SQL Server 表上存在的索引和主键约束。

  编写PPC数据库程式所用到的控件和类和编写桌面数据库程式具备相似性,SqlCeConnection对应SqlConnection,SqlCeDataAdapter对应SqlDataAdapter,SqlCeCommand对应SqlCommand等,SqlCeConnection 对象表示到智能设备上的数据源的一个连接,需要向ConnectionString传递有效的连接字符串,譬如:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: SQL Server日志文档总结及充满处理

下一篇: SQL SERVER 2K安全解决方案