中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 教育认证 > Macrmedia认证
如何把Access数据库移动到仿真环境内
作者:佚名 时间:2004-06-13 10:35 出处:互连网 责编:chinaitpower
              摘要:如何把Access数据库移动到仿真环境内

  您需要具备
  Visual Basic 6.0
  eMbedded Visual Basic 3.0
  Microsoft ADO for Windows CE SDK (ADOCE) version 2.0 (在此下载)
  Pocket PC SDK
  下载本示例的源代码
  
  须知
  我们的讨论过程基于Microsoft 的一个叫做EmulDemo/EmulDB的示例程序,它可以从可在此下载的Microsoft ADO for Windows CE SDK (ADOCE) 2.0 中找到。在安装之前,SDK需要进行一些“调整”。具体做法您可以在这篇知识库文章中了解到。
  在示例中,引用了一个叫做Empfile.exe 的程序,对于Pocket PC来说,它根本不存在,您可以忽略它。
  一些背景知识...
  在把Access 2000数据库复制到仿真环境中所需要用到的示例程序叫做EmulDemo。在您安装了Microsoft ADO for Windows CE SDK (ADOCE) 2.0 之后,“sample”目录下含有两个Microsoft Visual Basic工程:
  
  vbEmulDB.vbp: 此工程把 .mdb文件转换为 .tbd 文件,并且把 .tbd 文件复制到仿真环境中。
  EmulDB.vbp: 此工程把 .tbd 文件转换为ObjectStore表。
  不用担心,您将很快修正第二个工程,使它能把表存储为.cdb文件。
  
  尽管您直接简单地加载Visual Basic工程并运行它们也不错 - 但是,在您做这些之前,还有几个步骤要完成。
  
  记住,您正在处理Access 2000数据库! 而这个演示是为Access 97写的,因此为了使用本演示,您必须做一些额外的工作。如果您还在使用Access 97,您可以跳过开始的头两个步骤。本演示是使用用于桌面电脑的DAO(Data Access Objects)写的,而不是ADO(Active Data Objects)。
  
  让我们现在开始...
  为了能使用EmulDemo,您需要修改vbEmulDB 工程中的一个对象引用,把它从Microsoft DAO 3.51 Object Library改为Microsoft DAO 3.6 Object Library。
  
  在Visual Basic 中打开vbEmulDB,并且从“工程”菜单中选择“引用”。
  在出现的引用对话框中,取消对Microsoft DAO 3.51 Object Library 的选择并选中 Microsoft DAO 3.6 Object Library。
  vbEmulDB 使用了一个叫做empfile.exe 的程序来把.tdb结果文件复制到仿真环境中。对于Pocket PC 仿真,不再需要该文件。您可以直接把.tdb文件复制到仿真目录树下。
  
  为了能够使用vbEmulDB,您必须做以下一些修改。
  
  进入cmdCopyEmul_Click() 子程序,然后找到以下行:
  xfer = "empfile -c " & Chr(34) & LogFilePath & Chr(34)
   & " " & Chr$(34) & "WCE:" & filename & Chr$(34)
  
  把该行改为:
  xfer = "copy " & Chr(34) & LogFilePath & Chr(34)& " " &
   Chr$(34) & 揬Windows CE Tools\wce300\MS Pocket PC\emulation
   \palm300\My Documents " & Chr$(34)
  
  我还发现在使用某些Access 2000 数据库的时候,vbEmulDB 程序会创建内部带“0”的奇怪长字符串,这会把Windows CE文件控制完全搞乱。
  
  为了修正这个问题,把StripChar 子程序修改为:
  Function StripChar(ByVal FieldVal As Variant) As String
  Dim ReplaceChar As Variant
    Dim TxtFieldVal As String
    Dim ChrPos As Integer
    TxtFieldVal = FieldVal
    For Each ReplaceChar In Array(Chr$(13), Chr$(10), Chr(34))
      Do
        ChrPos = InStr(1, TxtFieldVal, ReplaceChar)
        If (ChrPos > 0) Then
          Mid(TxtFieldVal, ChrPos, Len(ReplaceChar)) = " "
        End If
      Loop While (ChrPos > 0)
    Next ReplaceChar
    ChrPos = 1
    While Mid(TxtFieldVal, ChrPos, 1) <> Chr$(0) And _
    ChrPos < Len(TxtFieldVal)
      ChrPos = ChrPos + 1
    Wend
    TxtFieldVal = Left(TxtFieldVal, ChrPos - 1)
    StripChar = Chr(34) & TxtFieldVal & Chr(34)
  End Function
  
  现在,启动程序,选择您的.mdb 文件并转换它,然后使用窗体上的按钮把它复制到仿真环境中。
  如果查看仿真环境的“我的文档”文件夹,您会看见新创建的.tdb文件。您还可以在桌面上打开这个文件,并且您会发现它实际上是重新创建整个数据库的一系列SQL 语句。
  您可能可以猜到EmulDB 工程所做的工作是什么...,它只是加载了这个文件,然后执行了其中所有的语句。在Handheld PC上运行的Windows CE version 2.0 没有Pocket Access。因此EmulDB 工程在ObjectStore中创建这些表。幸运的是,ADOCE 2.0中有一条没有被写进文档的语句,叫做:
  
  CREATE DATABASE lt;DatabaseName.CDB>
  
  因此,您需要稍微对EmulDB中的代码进行修改,使表能以.tdb文件的形式创建。但是首先,您必须要在仿真环境中安装Windows CE File Control 3.0,因为EmulDB 要使用这个控件。
  
  启动Windows CE Control Manager,从eMbedded Visual Basic 的“工具”菜单,在仿真环境中安装“Windows CE File System Control 6.0”。
  在eMbedded Visual Basic 中加载EmulDB ,然后找到 CreateTable(Path)子程序。
  在子程序的顶部添加以下代码:
  Dim rs
  Set rs = CreateObject("ADOCE.Recordset.3.0")
  rs.Open "CREATE DATABASE '\My Documents\<YourDatabaseName>.cdb'"
  
  在Rs_Open(SQLStr)子程序中,找到这一行:
  rs.Open SQLStr, , 2, 3
  
  然后把该行改为:
  
  rs.Open SQLStr, “\My Documents\.CDB”, 2, 3
  
  现在,下载EmulDB 程序并运行它。输入您的.tdb文件的完整路径并点击“创建表...”。如果EmulDB 报告有错误,您可以手动地修改桌面上的DeluxeCD.tdb 文件,然后用文件管理器把它复制到仿真环境下。
  
  结论
  Microsoft 正在为Microsoft ADO for Windows CE (ADOCE)的下一个版本开发更好的解决方案。到那时,用几行代码就可以完成这个任务。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有