带 SQL CE 的 Pocket PC






2.76/5 (26投票s)
本文演示了如何在远程数据访问 (RDA) 的帮助下使用 SQL CE 和 SQL Server 2000。
引言
本文介绍了如何使用 VB.NET 使用 SQL CE 以及如何将数据从 SQLCE (Pocket PC) 传输到在您的桌面系统中运行的 SQL Server 2000。
客户端要求
- 配备 Microsoft Windows 的 Pocket PC
- Microsoft .Net compact Framework 1.0 (PocketPC 中的默认值)
服务器要求
- MS SQL Server 2000 with SP3
- MS SQL CE 2000 with SP3
- 创建名为 D1Temp 的数据库并执行脚本 "D1temp SQLScript.sql"
背景
这项工作背后的基本思想是即时更新任何信息。 即,如果我从一个地方旅行到另一个地方,如果我看到
或知道一些有趣的信息。 如果我想将这些信息存储到我的数据存储中,那么只需要一个 Pocket PC 和互联网连接。
在飞行中,我可以记下所有信息,并将它们传输到我的桌面,该桌面运行在世界的某个地方。 我不会担心我的 Pocket PC 的内存大小,因为所有信息都发布到远程数据库。
您可以将此作为模板,并创建您自己的移动设备应用程序。
使用代码
下载源代码,您可以在其中找到一个名为 SQLSCRIPT.sql 的 SQL 脚本。 创建一个数据库(我使用了 D1Temp)并运行该脚本。 打开 Config.xml 并正确指定
数据库服务器
DatabaseName
数据库登录
数据库密码
SQLCEURL
IIS登录
IIS密码
'Connect to SQL 2000
Dim rdaOleDbConnectString As String = _
"Provider=sqloledb; Data Source=" & _
oDBConfig.DatabaseServer & ";Initial" & _
" Catalog=" & oDBConfig.PublisherDB & ";User Id=" & _
oDBConfig.PublisherLogin & ";Password=" & _
oDBConfig.PublisherPassword
'create an RDA object to connect to the SQL Server CE
'database on the mobile device:
'Initialize the RDA object.
Try
rda = New SqlCeRemoteDataAccess
rda.InternetUrl = oDBConfig.SqlCeUrl
rda.LocalConnectionString = _
"Provider=Microsoft.SQLSERVER." & _
"OLEDB.CE.2.0;Data Source=" & oDBConfig.LocalDBLocation & _
oDBConfig.LocalDBName
rda.InternetLogin = oDBConfig.IISLogin
rda.InternetPassword = oDBConfig.IISPassword
'Pull from SQL 2000
rda.Pull("MyFavourite", "Select * from MyFavourite", _
rdaOleDbConnectString, _
RdaTrackOption.TrackingOnWithIndexes)
.....
将详细信息从 PDA 传回 SQL 2000 也与上述代码相同,除了 rda.Pull
。 这里我们必须使用 rda.push
:-
rda.Push("MyFavourite", rdaOleDbConnectString, _
RdaBatchOption.BatchingOn)
并且我还添加了一些用于将数据读入 DataReader 和执行 SQL 语句的函数。关注点
当我尝试使用模拟器时,大多数时候它显示错误“80072EFD 请求将数据发送到运行 IIS 的计算机失败,有关更多信息,请参阅 HRESULT”,即使一切都配置正确。 如果我使用我的 pocket PC 而不是模拟器,它会运行良好。 之后,我经常通过我的 IE 运行 SQL CE 虚拟文件夹路径 "http://sys1/sqlce/sscesa20.dll"。 有时它有效,但大多数时候它无效。 如果此技巧失败,那么我使用此逻辑,即我将 IISLogin 从“everest/rasheed”更改为“everest\rasheed”(仅更改斜杠),如果下次失败,我将将 IISLogin 从“everest\rasheed”更改为“everest/rasheed” 你不会相信,但它完美地工作了。 我不知道“斜杠”的秘密 ;-)
历史
- 第一个版本 1.0