移动数据

  本月 Two for the Road 专栏将我带到了阳光明媚的加利福尼亚南部海滩 在这里 我试图在冲浪和 Pocket PC 开发之间保持平衡 做到劳逸结合 开始本打算在这两者之间保持完全的平衡 但是我很快惊异地发现 iPaq 在冲浪板上根本无法使用 因此我只能进行单调的冲浪运动了 谁曾想会是这样呢?您或许会想 Compaq 可能已在用户手册中对此问题提出了某种警告

  

  对于此问题 你们不必多虑 如果我能编写一个移动应用程序就好了 这样就可以打消那些开发同仁们的疑虑 Roof 这家伙将 iPaq 带到冲浪板上去到底想干什么? 好吧 我承认 我需要帮助 一身古铜色的皮肤和一方滴着盐水的引人注目的镇纸石 这就是我此次旅行的唯一收获

  

  好了 有关我遇到的技术问题这一话题就到此为止吧 现在 让我们开始讨论移动数据的问题 与我上个月教您构建的移动字幕应用程序有所不同 那个程序的实用性和简单程度简直令人难以置信 您将要构建的大多数 Pocket PC 应用程序最终或多或少都要涉及到数据问题

  

  移动数据选项

  开发移动应用程序的关键在于如何处理选项及其相关的权衡问题 这同样适用于将数据集成到移动应用程序这一主题 对于数据存储 您可以有以下选项

  

  顺序存取 随机存取和二进制文件 这些久经验证的方法 使得将数据合并到应用程序变得非常简单 其优点在于 根据您的需要 它们可以变得非常简单 也可以相当复杂 如果使用得当 它们能够提供最好的性能 不足之处在于 它们往往成为专用的解决方案 不易合并到企业环境

  Pocket Access 数据库 不要被 Pocket Access 这个名字所误导 这种移动数据方案与功能强大的桌面产品 Microsoft Access 差别很大 Pocket Access 缺乏窗体 报表 存储查询以及表之间的关系 简而言之 它只提供对一组表的存储和访问 另外 它还与 Microsoft Access 兼容 支持数据同步 提供一些简单的工具用于将表在设备间移动 而且可以使用 ADOCE(即 ActiveX® 数据对象的移动版本)对它进行操作(这一点以后再讨论)

  注意 Pocket Access 表的扩展名为 cdf

  SQL Server Windows CE 版 目前功能最全面 性能最稳定的移动数据库非 SQL Server CE 莫属 它提供的关系数据库所占空间很小 但包含了一个查询处理器和一些合并复制功能 和 Pocket Access 一样 您可以使用 ADOCE 对 SQL Server CE 数据库进行操作 事实上 要将移动应用程序从用于 Pocket Access 转变为用于 SQL Server CE 通常需要对代码进行小小的改动

  注意 SQL Server CE 数据库的扩展名为 sdf

  SQL Server CE 最适合于那些专门用来与基于企业的 SQL Server 数据库交互的应用程序 不过 尽管其性能卓越 它却不能和 Pocket Access 一样支持简单的 ActiveSync® 和 ADOCE API

  

  什么是 ADOCE?

  使用 ADOCE 就可以从移动应用程序访问 Pocket Access 和 SQL Server CE 数据库 ADOCE 提供 ADO 功能的子集 它包含自己的内部数据库提供程序 通过该程序 您可以对存储在 Pocket PC 本地的数据库进行操作 使用 ADOCE 还可以通过 OLEDB 提供程序来访问数据源

  

  ADOCE 的主要优点在于 您可以使用自己的桌面 ADO 编码技术来开发移动应用程序 有关 ADOCE 支持哪些功能的详细信息 请查阅 eMbedded Visual Basic® (eVB) 中附带的帮助

  

  本月的应用程序 Mobile Sales

  我在撰写本文时 意识到上个月的应用程序 Hello World 字幕具有明显的适销性 以后的应用程序要想达到这一境界恐怕很难 于是 我决定在本月的应用程序 Mobile Sales 中加点新鲜内容 尽管它可能不如 Hello World 字幕那样有吸引力 却说明了如何利用 ADOCE 将存储在 Pocket Access 数据库中的数据合并到移动解决方案

  

  Mobile Sales 展示了使用 Pocket PC 很容易就能使交货过程自动化 使用 Mobile Sales 交货人员能够快速填写每一地点订购的订单 这样 当他们进货时 只需要选择要添加到订单的每个项目的类型和数量 该数据存储在 Pocket PC 上的表中 可以从它下次连接的设备处检索该表

  

  Mobile Sales 由以下两个组件组成

  

  桌面交货应用程序

  移动条目应用程序

  我将带您一步步浏览这两个应用程序 以便在浏览之后 您对分发 使用和收集移动应用程序生成的数据这整个过程能有一个全面的了解

  

  Mobile Sales 数据库

  用于 Mobile Sales 的 Microsoft Access 数据库包含四个表

  

  Customers Customers 表专门用于填充设备应用程序中的组合框 该表在设备上是只读的

  Products Products 表用于填充设备应用程序中的组合框 也是每个产品的定价信息源 该表在设备上是只读的

  Route Route 表包含司机每天预定要访问的客户列表 根据这种情况 每天要用一组新客户来生成该表 该表在设备上是只读的

  Orders Orders 表用于存储在字段中输入的订单信息 它在设计上非常简单 表中的每个记录代表客户订购的一个项目

   Mobile Sales 桌面 组件

  

   Mobile Sales 桌面 组件负责将数据库传输到设备 然后从设备检索回单个 Orders 表 其界面非常简单 如下图所示

   

  图 Mobile Sales 桌面 界面

  

   Mobile Sales – 桌面 使用 ADOCE API 来执行这些传输 ADOCE 提供了程序方法 用于将表传输到设备或从设备传输表 ADOCE API 简单得令人难以置信 它只包含两个函数 DESKTOPTODEVICE 和 DEVICETODESKTOP

  

  DESKTOPTODEVICE 用于将表从 Microsoft Access 桌面数据库复制到 Pocket Access 设备数据库 该函数的语法为

  

  DESKTOPTODEVICE(DesktopLocn TableList Sync Overwrite DeviceLocn)

  

  其中

  

  DesktopLocn 是包含要传输的表的 Access 数据库的路径和文件名 您还可以将 DSN 用作该值

  TableList 是要复制的表和字段的列表

  该参数的格式为

  

  [!]表名 字段名

  

  前导 ! 用于指定表是只读的

  

  Sync 定义 ActiveSync 是否应维护桌面和设备数据库之间的同步

  Overwrite 指定是否应覆盖任何现有的表

  DeviceLocn 是指设备上的 Pocket Access 数据库的路径和文件名

  

  DEVICETODESKTOP 该函数用于将表从 Pocket Access 设备数据库复制到 Microsoft Access 桌面数据库 该函数的语法为

  

  DEVICETODESKTOP(DesktopLocn TableList Sync Overwrite DeviceLocn)

  

  DEVICETODESKTOP 函数的参数与 DESKTOPTODEVICE 函数中所用参数完全相同

  

  下载 Mobile Sales 数据

  使用 DESKTOPTODEVICE 函数之前 必须在 Mobile Sales – 桌面 窗体模块的 一般声明 部分声明此函数 如下所示

  

  Private Declare Function DESKTOPTODEVICE Lib _

    c:\Program Files\Microsoft ActiveSync\adofiltr dll _

   (ByVal desktoplocn As String _

   ByVal tablelist As String _

   ByVal sync As Boolean _

   ByVal overwrite As Integer _

   ByVal devicelocn As String) As Long

  

  然后 使用以下代码将这四个表从桌面 Microsoft Access 数据库复制到设备 Pocket Access 数据库

  

  lResult = DESKTOPTODEVICE(App Path & \Mobile Sales mdb _

   !Customers !Products !Route Orders False True _

   \tonked\Mobile Sales\Mobile Sales cdb )

  

  注意  该代码位于示例的 mnuFunctionsDownload 单击事件中

  在此处 正在将 Customers Products Route 和 Orders 表复制到设备 其中 Customers Products 和 Route 这三个表是只读的 其名称前标有 ! 在这一过程中将覆盖任何现有的表

  

  上载订单数据

  使用 DEVICETODESKTOP 函数之前 也必须在 Mobile Sales – 桌面 窗体模块的 一般声明 部分声明此函数

  

  Private Declare Function DEVICETODESKTOP Lib _

    c:\program files\Microsoft ActiveSync\adofiltr dll _

   (ByVal desktoplocn As String _

   ByVal tablelist As String _

   ByVal sync As Boolean _

   ByVal overwrite As Integer _

   ByVal devicelocn As String) As Long

  

  然后使用以下代码将 Orders 表从设备 Pocket Access 数据库复制到桌面 Microsoft Access 数据库

  

  lResult = DEVICETODESKTOP(App Path & \Mobile Sales mdb _

   Orders False True \tonked\Mobile Sales\Mobile Sales cdb )

  

  注意  该代码位于示例的 mnuFunctionsUpload 单击事件中

  桌面组件概述

  该组件展示了将数据移到设备或从设备移回数据实现起来很简单 利用 ADOCE API 您可以轻松地传输 Microsoft Access 表

  

  注意  您可以使用示例附带的 Microsoft Access 数据库中的 Today s Orders 报表来生成订单报表 如下图所示

   

  图 订单报表

  

  运行报表之前 您应该执行以下步骤

  

  使用 Mobile Sales – 桌面 组件 将数据库下载到您的设备

  运行 Mobile Sales – 设备 组件 处理一些客户订单

  使用

移动数据

相关文章:

  • 中国移动网关user密码忘记了
  • 中国移动网关user初始密码是多少
  • 中国移动网关user初始密码大全
  • 华为最好的终端云服务
  • 你感兴趣的文章:

    标签云:

    亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,