PocketPC中SQLCE数据库同步

原创 2002年11月13日 09:12:00

  来自www.Move2008.com

使用SQLCE提供的RDARemote Data Access)对象很容易实现PocketPC SQLCE数据库与PCSQL Server2000数据库同步,它们之间的同步通过HTTP来传输,因此也必须有后台WEB服务器。同步传输介质也有多种,如红外、底坐、无线网卡等。同步过程如下图所示:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

739-1.gif

一、PC服务器端的安装及设置

739-2.gif         安装SSCEServer1.0

1.       安装(下载)

http://www.microsoft.com/sql/ce/downloads/default.asp

 

739-2.gif         安装并配置IIS5.0(或更高版本)

1.安装

依次单击开始控制面板,然后单击添加/删除程序 单击添加/删除 Windows 组件。出现 Windows 组件向导。 按照屏幕上的说明安装、删除或添加Internet信息服务(IIS) 组件。 安装好之后,在IE浏览器的地址栏中键入 http://localhost/ 然后按 ENTER,如果有正常显示就说明IIS已安装正确,如遇到问题可查看 IIS 联机文档。

 

           2.配置

            打开“控制面板->管理工具-> Internet 信息服务”,设置步骤如下列图所示:

           (1) 增加虚拟目录

739-3.gif 

      (2) 虚拟目录名称为:sqlce

739-4.jpg

(3) 填写虚拟目录路径

739-5.jpg 

      (4) 设置访问权限(注意:选中“执行(ISAPI应用程序或CGI))

739-6.jpg 

      (5) 测试安装是否正确

           打开IE浏览器,在地址栏中输入http://localhost/sqlce/sscesa10.dll

      如果显示为“body”则说明设置正确。

 

二、PocketPC端的安装

739-2.gif         安装SQLCE1.0

 

从微软网站下载:

http://download.microsoft.com/download/SQLSVR2000/Utility/3.0/NT5XP/EN-US/sqldash.exe

解压后运行:C:/sqldash/SQLDash/PPC/PPCSetup.exe

 

或者从www.Move2008.com下载:www.move2008.com/down/download/ssce.ARM720C.CAB

下载后CopyPocketPC打开安装即可。

 

739-2.gif         PocketPC上创建SQLCE数据库

创建表代码如下:

Public goADOXcat As ADOXCE.Catalog

 

Set ADOXcat = CreateObject("ADOXCE.Catalog.3.1")

ADOXcat.Create"Provider=Microsoft.SQLServer.OLEDB.CE.1.0;Data Source=/test"

三、数据库同步代码(EVB/ASP

       '数据库连接ADO Connection对象

Public conn As ADOCE.Connection  

Public LocalConnStr, RemoteConnStr, InternetURL, ServerIP As String

 

'同步前的初使化

Public Function SyncInit()

    '本地SQLCE连接ConnectString

    LocalConnStr = "Provider=Microsoft.SQLServer.OLEDB.CE.1.0;Data Source=/test"

    Set conn = CreateObject("ADOCE.connection.3.0")

    conn.ConnectionString = LocalConnStr

 

    '如果数据库是打开的则先关闭

    If conn.State = 1 Then conn.Close

 

    'PC服务器的地址

    ServerIP = "192.168.0.1"   

    '远程SQL Server2000数据库连接地址

    RemoteConnStr = "Provider=sqloledb;Initial Catalog=AircraftMobile;Data Source=" + ServerIP + ";user id=test;password=test;"

    '远程PC机上的SQLCE同步的WEB地址(IIS设置)

    InternetURL = "http://" + ServerIP + "/sqlce/sscesa10.dll"

end Function

 

'数据同步

Public Function SyncTable(tablename, sql)

        delTable (tablename)

        Set ceRDA = CreateObject("SSCE.RemoteDataAccess.1.0")

        ceRDA.LocalConnectionString = LocalConnStr

        ceRDA.InternetURL = InternetURL

 

        On Error Resume Next

          PC数据库中的表同步到PocketPC

        ceRDA.Pull tablename, sql, RemoteConnStr, TRACKINGOFF

 

          PocketPC中的数据同步到PC

此行已注释:goRDA.Push tablename, RemoteConnStr

 

        If ceRDA.ErrorRecords.Count > 0 Then

          For Each gceErr In ceRDA.ErrorRecords

            strErr = ""

            strErr = strErr + "错误号:" + Trim(gceErr.NativeError) + "  "

            strErr = strErr + "目标:" + gceErr.Description + "  "

            MsgBox tablename + ":" + strErr

          Next

        End If

 

        Set ceRDA = Nothing

End Function

 

'删除表

Public Function delTable(tablename)

        Set conn = CreateObject("ADOCE.connection.3.0")

        conn.ConnectionString = "Provider=Microsoft.SQLServer.OLEDB.CE.1.0;Data Source=/test"

        conn.Open

        On Error Resume Next

        conn.Execute ("drop table " + tablename)

        conn.Close

End Function

 

'远程操作PC服务器数据库

function RemoteSQL(sql)

    if trim(sql)<>"" then

        if mid(sql,len(sql),1)<>";" then sql = sql & ";"

        Set ceRDA = CreateObject("SSCE.RemoteDataAccess.1.0")

        ceRDA.InternetURL = InternetURL

        sql = "BEGIN TRANSACTION; Use test;" & sql & "COMMIT TRANSACTION;"

 

        On Error Resume Next

        ceRDA.SubmitSQL sql,RemoteConnStr

        If ceRDA.ErrorRecords.Count > 0 Then

          For Each gceErr In ceRDA.ErrorRecords

                strErr = ""

                strErr = strErr & " : " & Trim(gceErr.NativeError) & vbCrLf

                strErr = strErr & "出错目标: " & gceErr.Description & vbCrLf

                MsgBox strErr

            Next

        End If

 

        Set ceRDA = Nothing

    end if     

end function

 

 

Bedlang

2002-11-1

基于VS2008的Wince系统的SQLCE3.5数据库开发应用实例

1.       概述 SQLCE3.5数据库安装以及扬创科技嵌入式WinCE工业平板电脑SQLCE和SQLServer数据库同步配置;安装步骤依次为IIS安装、客户端安装、服务端安装。 2.  ...
  • sqcg999
  • sqcg999
  • 2014年03月03日 12:49
  • 1901

SQLCE管理工具

如果你是做dotnet开发,同时在找sqlce桌面、嵌入式数据库的管理工具
  • wangxingguo1218
  • wangxingguo1218
  • 2014年06月20日 10:06
  • 3533

WINCE平台安装sqlCE

原文地址::http://blog.csdn.net/yjg428/article/details/7513860 相关文章 1、wince 安装 sql server ce 3.5----htt...
  • xqhrs232
  • xqhrs232
  • 2015年06月19日 09:46
  • 1168

关于SQLite和SQLCE的比较

最近在网上也看了很多关于SQLite和sqlce的比较
  • wangxingguo1218
  • wangxingguo1218
  • 2014年06月15日 18:58
  • 7163

Sqlce的数据库连接以及创建

public static bool CreateDb()  {   try   {    SqlCeEngine engine = new SqlCeEngine("Data Source =Sto...
  • hanghangaidoudou
  • hanghangaidoudou
  • 2007年12月10日 17:24
  • 1667

sqlce数据操作vb例程

sqlce数据操作vb例程Imports System.data Imports System.data.SqlServerCe Imports System.IO '''' '''...
  • linczone
  • linczone
  • 2015年05月22日 16:06
  • 620

SQLCE 3.5 SP2 与 SQL SERVER 语法异同

有一次在 SQLCE 3.5 SP2  中执行下列语句: SELECT Name = case cap_type when 'E' then given_nam...
  • gulingeagle
  • gulingeagle
  • 2014年12月03日 17:36
  • 2129

c#开发WinCE程序之sqlce安装

第一次做c#开发,也是第一次做嵌入式开发,为了使用数据库,找了好多的资料。可能是现在大多是安卓开发了吧,资料不多,而且大部分资料都狠重点,看不出数据库怎么配的。弄了1天,总算弄好了。其实还是很简单的。...
  • weightman2008
  • weightman2008
  • 2014年03月16日 11:20
  • 1624

SQLCE建复合索引

CREATE TABLE [PT_check3] (  [FCheckPlan_ID] NVARCHAR(20) NOT NULL ,  [FBarCode] NVARCHAR(20) NOT NUL...
  • wadyloo
  • wadyloo
  • 2011年08月23日 15:31
  • 603

sqlite和sqlce性能对比

前端时间做WINCE手持机应用时,用到了SQLCE,在SQL CE的数据流读写里头,我想插入数据,就直接把数据插入进去: 1        public static void InsertInto...
  • gooodiuck
  • gooodiuck
  • 2012年12月28日 09:03
  • 1166
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PocketPC中SQLCE数据库同步
举报原因:
原因补充:

(最多只允许输入30个字)