首页 数据库 mysql教程 RDA实现SQL CE与SQL Server间数据存取

RDA实现SQL CE与SQL Server间数据存取

Jun 07, 2016 pm 03:04 PM
server sql 存取 实现 推荐 数据 经典

推荐: 经典教程专区 本文介绍如何利用 RDA(RemoteDataAccess远程 数据 存取 ) 实现 掌上电脑Pocket PC(简称PPC)上的SQL Server CE 2.0与桌面SQL Server 2000 数据 库间的 数据 存取 。我们将采用Visual Basic .Net 2003进行智能设备端的程序开发。 一、

中国共享软件英雄会.北京

      RDA实现SQL CE与SQL Server间数据存取
      推荐:经典教程专区

  本文介绍如何利用 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传递有效的连接字符串,譬如:

LocalConnString = "Data Source=\Program File\Task\RDA.sdf"

  Sdf文件是SQL Server CE 数据库文件。 SQL Server CE 只支持一次一个连接,但是多个命令可以共享同一连接。在SqlCeConnection连接打开的情况下,可以创建SqlCeCommand对象,并设置用于执行或返回记录集的SQL语句的Commandtext属性,SqlCeCommand 调用的 SQL 语句不支持传递参数的命名参数,必须使用问号 (?) 占位符,也可以自定义组成SQL语句的字符串,例如:

……
Dim conn As New SqlCeConnection
conn.ConnectionString = LocalConnString
Dim selectCMD As SqlCeCommand = New SqlCeCommand
selectCMD.CommandText = "update itemlist set finished=1 where id=" + id
conn.Open()
selectCMD.ExecuteNonQuery()
……

  应用程序可以使用rda.push方法将 SQL Server CE 跟踪提取表中的更改传送回原始 SQL Server 表。localTableName 是指已经从 SQL Server 提取的记录的 SQL Server CE 本地表的名称。oledbConnectionString 为连接 SQL Server 数据库时使用的 OLE DB 连接字符串。batchOption 表示正发送回 SQL Server 表的更改是组成一批共用同一事务,还是分别应用。我们的版本需要将所有行组成一批,归并到一个事务推入SQL Server。

rda.Push("itemlist", RemoteConnString, RdaBatchOption.BatchingOn)

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的区别是什么? Hibernate 框架中 HQL 和 SQL 的区别是什么? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

使用ddrescue在Linux上恢复数据 使用ddrescue在Linux上恢复数据 Mar 20, 2024 pm 01:37 PM

DDREASE是一种用于从文件或块设备(如硬盘、SSD、RAM磁盘、CD、DVD和USB存储设备)恢复数据的工具。它将数据从一个块设备复制到另一个块设备,留下损坏的数据块,只移动好的数据块。ddreasue是一种强大的恢复工具,完全自动化,因为它在恢复操作期间不需要任何干扰。此外,由于有了ddasue地图文件,它可以随时停止和恢复。DDREASE的其他主要功能如下:它不会覆盖恢复的数据,但会在迭代恢复的情况下填补空白。但是,如果指示工具显式执行此操作,则可以将其截断。将数据从多个文件或块恢复到单

开源!超越ZoeDepth! DepthFM:快速且精确的单目深度估计! 开源!超越ZoeDepth! DepthFM:快速且精确的单目深度估计! Apr 03, 2024 pm 12:04 PM

0.这篇文章干了啥?提出了DepthFM:一个多功能且快速的最先进的生成式单目深度估计模型。除了传统的深度估计任务外,DepthFM还展示了在深度修复等下游任务中的最先进能力。DepthFM效率高,可以在少数推理步骤内合成深度图。下面一起来阅读一下这项工作~1.论文信息标题:DepthFM:FastMonocularDepthEstimationwithFlowMatching作者:MingGui,JohannesS.Fischer,UlrichPrestel,PingchuanMa,Dmytr

华为手机如何实现双微信登录? 华为手机如何实现双微信登录? Mar 24, 2024 am 11:27 AM

华为手机如何实现双微信登录?随着社交媒体的兴起,微信已经成为人们日常生活中不可或缺的沟通工具之一。然而,许多人可能会遇到一个问题:在同一部手机上同时登录多个微信账号。对于华为手机用户来说,实现双微信登录并不困难,本文将介绍华为手机如何实现双微信登录的方法。首先,华为手机自带的EMUI系统提供了一个很便利的功能——应用双开。通过应用双开功能,用户可以在手机上同

谷歌狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理训练最快选择 谷歌狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理训练最快选择 Apr 01, 2024 pm 07:46 PM

谷歌力推的JAX在最近的基准测试中性能已经超过Pytorch和TensorFlow,7项指标排名第一。而且测试并不是在JAX性能表现最好的TPU上完成的。虽然现在在开发者中,Pytorch依然比Tensorflow更受欢迎。但未来,也许有更多的大模型会基于JAX平台进行训练和运行。模型最近,Keras团队为三个后端(TensorFlow、JAX、PyTorch)与原生PyTorch实现以及搭配TensorFlow的Keras2进行了基准测试。首先,他们为生成式和非生成式人工智能任务选择了一组主流

iPhone上的蜂窝数据互联网速度慢:修复 iPhone上的蜂窝数据互联网速度慢:修复 May 03, 2024 pm 09:01 PM

在iPhone上面临滞后,缓慢的移动数据连接?通常,手机上蜂窝互联网的强度取决于几个因素,例如区域、蜂窝网络类型、漫游类型等。您可以采取一些措施来获得更快、更可靠的蜂窝互联网连接。修复1–强制重启iPhone有时,强制重启设备只会重置许多内容,包括蜂窝网络连接。步骤1–只需按一次音量调高键并松开即可。接下来,按降低音量键并再次释放它。步骤2–该过程的下一部分是按住右侧的按钮。让iPhone完成重启。启用蜂窝数据并检查网络速度。再次检查修复2–更改数据模式虽然5G提供了更好的网络速度,但在信号较弱

超级智能体生命力觉醒!可自我更新的AI来了,妈妈再也不用担心数据瓶颈难题 超级智能体生命力觉醒!可自我更新的AI来了,妈妈再也不用担心数据瓶颈难题 Apr 29, 2024 pm 06:55 PM

哭死啊,全球狂炼大模型,一互联网的数据不够用,根本不够用。训练模型搞得跟《饥饿游戏》似的,全球AI研究者,都在苦恼怎么才能喂饱这群数据大胃王。尤其在多模态任务中,这一问题尤为突出。一筹莫展之际,来自人大系的初创团队,用自家的新模型,率先在国内把“模型生成数据自己喂自己”变成了现实。而且还是理解侧和生成侧双管齐下,两侧都能生成高质量、多模态的新数据,对模型本身进行数据反哺。模型是啥?中关村论坛上刚刚露面的多模态大模型Awaker1.0。团队是谁?智子引擎。由人大高瓴人工智能学院博士生高一钊创立,高

美国空军高调展示首个AI战斗机!部长亲自试驾全程未干预,10万行代码试飞21次 美国空军高调展示首个AI战斗机!部长亲自试驾全程未干预,10万行代码试飞21次 May 07, 2024 pm 05:00 PM

最近,军事圈被这个消息刷屏了:美军的战斗机,已经能由AI完成全自动空战了。是的,就在最近,美军的AI战斗机首次公开,揭开了神秘面纱。这架战斗机的全名是可变稳定性飞行模拟器测试飞机(VISTA),由美空军部长亲自搭乘,模拟了一对一的空战。5月2日,美国空军部长FrankKendall在Edwards空军基地驾驶X-62AVISTA升空注意,在一小时的飞行中,所有飞行动作都由AI自主完成!Kendall表示——在过去的几十年中,我们一直在思考自主空对空作战的无限潜力,但它始终显得遥不可及。然而如今,

See all articles