PocketPC中SQLCE数据库同步

王朝mssql·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

来自www.Move2008.com

下载PDF文档

使用SQLCE提供的RDA(Remote Data Access)对象很容易实现PocketPC SQLCE数据库与PC机SQL Server2000数据库同步,它们之间的同步通过HTTP来传输,因此也必须有后台WEB服务器。同步传输介质也有多种,如红外、底坐、无线网卡等。同步过程如下图所示:

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

安装SSCEServer1.0

1. 安装(下载)

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

安装并配置IIS5.0(或更高版本)

1.安装

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

2.配置

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

(1) 增加虚拟目录

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

(3) 填写虚拟目录路径

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

(5) 测试安装是否正确

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

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

二、PocketPC端的安装

安装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

下载后Copy到PocketPC打开安装即可。

在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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航