• SQL Server 2005 Compact Edition移动开发指南[转]


     

    [编者按]:移动数据库这个概念,在五年前也许很多人闻所未闻。但是现在,其具体的应用已经十分广泛。在本专题中,将对微软的移动数据库SQL Server 2005 Compact Edition作一个基础性的介绍,希望通过该专题,可以使读者对移动版的数据管理系统有一个大体上的认识,并且能够进行简单的操作。

    SQL Server 2005 Compact Edition移动开发指南

    1篇:安装SQL Server 2005 Compact Edition

    Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) Microsoft SQL Server Mobile 的下一版本,本篇主要介绍安装SQL Server 2005 Compact Edition系统需求开发环境服务器环境等内容。

    1.1 SQL Server 2005 Compact Edition基础概要

    SQL Server 2005 Compact Edition(本文以后均将SQL Server 2005 Compact Edition缩写为SQL Server CE)是微软推出的一个适用于嵌入到移动应用的精简数据库产品,Windows Mobile开发人员能够使用SQL Server CE开发出将数据管理能力延展到Window Mobile移动设备上的应用程序。虽然SQL Server CE占用的磁盘空间只有35兆左右,但是它功能并没有像它的容量那样大幅度缩水。SQL Server CE不但提供了完整的SQL语法,包括内部联接、外部联接和子查询,还内置了数据同步技术的支持。有一点要注意的是,SQL Server 2005 Compact Edition除了可以作为移动数据库在Windows Mobile设备上运行外,它也支持在PC上存放数据,为桌面的应用程序提供数据支持。

    下面是SQL Server 2005 Compact Edition的一些主要功能:

    ·精简的数据库引擎和强大的查询优化器。

    ·支持合并复制与远程数据访问 (RDA)

    ·SQL Server Compact EditionSQL Server Management Studio Visual Studio 2005 完全集成。通过SQL Server Management Studio,可以用可视化的方式来创建SQL Server Compact Edition 数据库、查看数据库对象、创建表、修改表以及执行交互式查询等一系列操作。

    ·远程数据访问和合并复制,用于同步数据。

    ·.NET Framework和用于SQL Server Compact Edition .NET Compact Framework 数据访问接口 (System.Data.SqlServerCe)

    ·支持用于SQL Server Compact EditionADO.NET OLE DB访问接口。

    ·SQL语法的子集。

    ·在台式机、移动设备和 Tablet PC上部署为嵌入式数据库。

    ·支持ClickOnce部署技术

    其实说SQL Server CESQL Server 2005的精简版本一点都不为过,因为SQL Server CE提供了SQL Server 2005的丰富子集,使你能够充分利用现有的SQL Server技能。除此之外,你还可以充分利用现有的数据库编程技能和经验,因为SQL Server CE为托管应用程序提供了一个ADO.NET库,并为本机应用程序提供了一个OLEDB库,这两个库都与SQL Server 2005的对应库保持一致(本专题只介绍如何使用ADO.NETSQL Server CE进行操作),简化了在Windows Mobile设备上开发数据管理应用程序的难度。

    SQL Server CE数据库引擎不但提供了关系型数据库的基本功能,还提供了两个非常重要的技术,那就是远程数据访问和合并复制。这两种方法都是用来实现与远程数据库进行数据同步的,使得我们可以很容易将远程数据库中的信息加载到设备端的SQL Server CE数据库中,此外我们还可以在离线状态下对SQL Server CE数据库进行插入、删除、更新等修改操作,最后就可以将修改后的数据回发到远程数据库中,确保了设备端和服务器端的数据同步。

    Windows Mobile 6.0SQL Server 2005 Compact的支持

    在微软刚刚发布的Windows Mobile 6.0中,已经在ROM中内置了 .NET Compact Framework 2.0 Service Pack 1 (SP1) SQL Server 2005 Compact Edition,这就意味着我们在开发托管代码程序时,无需再将.NET Compact Framework SQL Server CE部署到目标设备上。不但减少了部署应用程序所需的时间和开销,也将加快传统的本地代码向托管代码的迁移(Windows Form之所以没有得到广泛的应用,就是因为Windows XP系统中没有内置.NET Framework。这也就是为什么现在Vista操作系统都包含了.NET Framework 3.0的原因,为的就是WPF可以在Vista系统上得到广泛的普及和应用)

    除此之外,不但应用程序在使用 .NET Compact Framework 2.0时比在使用 .NET Compact Framework 1.0时的性能更高,而且在Windows Mobile 6设备上运行的 .NET Compact Framework 2.0应用程序与在较早版本的Windows Mobile设备上运行的同一 .NET Compact Framework 2.0应用程序相比,前者的启动速度要比后者快25%Windows Mobile 6设备上启动时间得到缩短是因为在设备ROM中安装了.NET Compact Framework 2.0。与将 .NET Compact Framework 2.0安装在RAM中的设备相比,单是将 .NET Compact Framework 2.0 安装在设备ROM中便可使应用程序启动速度提高25%左右。

    所有这些性能改进不但意味着用户对你开发的速度更快、响应更及时的应用程序更加满意,还意味着应用程序的开发速度有了很大的提升,因为开发人员等待程序部署的时间减少了。此外,应用程序的启动和运行速度更高,获得应用程序测试结果的时间也就更短。

    SQL Server 2005 Compact Edition体系结构

    注意,虽然我们只要在Windows Mobile上安装SQL Server CE引擎,就可以在设备上对SQL Server CE数据库进行相应的操作,但是如果你想使用SQL Server CE中的合并复制和远程数据访问两种技术与远程数据库进行数据同步的话,那还就还需要SQL Server CE客户端代理和SQL Server CE服务器端代理两个组件的支持。

    总的来说,SQL Server CE的体系结构就是由这三大组件构成的:

    ·SQL Server Compact Edition 数据库引擎

    ·SQL Server Compact Edition 客户端代理

    ·SQL Server Compact Edition服务器端代理

    1展示了SQL Server CE的体系结构以及上述三个组件之间的相互关系。由图可以知道,SQL Server CE包括客户端环境和服务器环境两个部分,SQL Server CE数据库引擎和SQL Server客户端代理都是位于客户端环境中的,即Windows Mobile设备端或PC中。而SQL Server Compact Edition服务器端代理是位于服务器环境中,并且作为一个进程在IIS环境中运行。

    SQL Server CE引擎的主要功能就是对SQL Server CE的数据存储区进行管理。通过对每条记录维护少量的更改跟踪信息,这样数据库引擎就可以很方便的跟踪所有进行插入、更新或删除操作的数据库记录。当我们使用合并复制或远程数据访问 (RDA) 这两种连接解决方案时,启用跟踪功能将大大加快数据同步的速度。因为可以根据跟踪信息直接判断那些记录是更改过的,从而将这些更改的记录进行数据同步,避免了设备端和服务器端数据库间对应记录间逐条比较的过程。

    SQL Server CE客户端和服务器端之间主要是采用HTTP进行请求,并通过无线局域网或无线广域网进行通讯。这两者间的HTTP请求验证主要是由IIS处理。SQL Server 数据库可以和IIS位于同一台计算机中,也可以分装在不同的计算机中。

    当我们需要使用合并复制或RDA实现数据同步的时候,SQL Server CE客户端就向SQL Server CE服务器端发送一个HTTP请求。SQL Server CE服务器端在接受到该请求后,就会与服务器端的SQL Server数据库进行连接,当SQL Server根据请求完成相应的操作后,SQL Server CE服务器端再以HTTP请求向SQL Server CE客户端返回数据。


    1 SQL Server 2005 Compact Edition体系结构

    SQL Server CE客户端与服务器端之间的通讯,还可以采用安全超文本传输协议(HTTPS)来增加数据的安全性。SQL Server CE可以使用IISSSL特性,加密在Windows Mobile上的SQL Server CE和服务器上的SQL Server之间传输的数据,而且为了减少每次传输的数据量,SQL Server CE会对这些数据进行压缩后在进行传输。

    SQL Server CE除了可以采用无线局域网和无线广域网和SQL Server进行连接外,还可以通过ActiveSync软件与桌面PC进行连接,再通过PCSQL Server连接。

    1.2 SQL Server 2005 Compact Edition系统需求与配置过程

    由于SQL Server 2005 Compact EditionSQL Server 2005是同时代的产品,所以它们之间的互操作和结合性较之以前的SQL Server版本要好,为此如果要考虑使用SQL Server 2005 Compact Edition中的合并复制和远程数据访问技术进行数据同步的话,最好是使用SQL Server 2005作为后端的数据库。

    现在只要是能运行Visual Studio 2005的计算机都可以满足本专题具备的硬件要求(具体的软硬件要求大家可以查看SQL Server 2005 Compact Edition的联机丛书)

    下面是笔者开发SQL Server 2005 Compact Edition程序所使用的软件环境:

    ·Windows XP SP2

    ·Visual Studio 2005

    ·Windows Mobile 6.0 Professional SDK

    ·Microsoft ActiveSync 4.5

    ·Internet Explorer 6.0

    ·IIS

    ·SQL Server 2005

    由于在本专题的前面部分,主要是介绍如何在Windows Mobile设备端通过ADO.NETSQL Server 2005 Compact Edition进行操作,所以我们暂时不用考虑SQL Server 2005 Compact EditionSQL Server 2005进行数据同步的问题。因此SQL Server 2005IIS可以暂时不用安装,到使用到合并复制和远程数据访问技术时,笔者会详细介绍SQL Server 2005 Compact EditionSQL Server 2005之间进行数据同步时需要的配置过程。

    智能设备开发环境的配置过程

    现在就来介绍开发SQL Server 2005 Compact Edition移动设备端应用应具备的基本条件吧!通常我们都是使用Visual Studio 2005 Professional及更高的版本进行智能设备程序的开发(Visual Studio 2005 Express目前并不支持)。在安装Visual Studio 2005的过程中,只需要将图1中的智能设备可编程技术单选框选中,安装完毕后就可以利用Visual C#开发托管代码的智能设备程序了。


    1 选择智能设备可编程技术

    我们在开发特定平台的智能设备程序时,往往需要事先安装相应的SDK(软件开发包)。比如说要开发针对Windows Mobile 6.0的应用程序,就要先安装Windows Mobile 6 SDK,否则Visual Studio 2005是不会出现Windows Mobile 6智能设备开发这个选项的。为此,我们在安装完Visual Studio 2005后,就需要安装ActiveSync软件,这样才能继续完成特定平台的SDK安装,这个先后次序希望大家一定要注意。

    ActiveSync可以同时支持PPC和微软智能手机(Smartphone),使用它可以很方便地在PCPPC或智能手机间进行数据的同步。ActiveSync不仅可以同步文件,电子邮件及日程等,更有着许多额外的功能如同步SMS等。另外,Windows Mobile设备的用户还可以通过连接PC来访问互联网。ActiveSync可以说是PC与移动设备间的一座桥梁。

    现在最新的ActiveSync版本为4.5,该软件的中文版可以在该链接下载:http://download.microsoft.com/download/7/e/c/7ecbd388-7fb5-4e3e-b57f-12eaf7eb6136/setup.msi

    ActiveSync安装完毕后,会提示你重新启动计算机才能完成相应的设置。ActiveSync的界面如图2所示:


    2 ActiveSync 4.5简体中文版

    前文提到过,当我们需要开发特定平台的Windows Mobile应用程序时,需要安装相应的SDK。在本专题中将采用Windows Mobile 6.0作为开发的平台,因为Windows Mobile 6.0设备的ROM中已经内置了.Net Compact Framework 2.0 SP1SQL Server 2005 Compact Edition,加上近几个月来中国市场上已经有越来越多的产品采用了Windows Mobile 6.0系统,相信不用多久Windows Mobile 6.0就会取代Windows Mobile 5.0,成为主流的操作系统。当然,在本专题中的所有程序也都可以在无需任何修改的条件下在Windows Mobile 5.0上运行。这是因为Windows Mobile 6.0Windows Mobile 5.0都是基于Windows CE 5.0的,只不过Windows Mobile 6.0在原来5.0的基础上添加了一些新的特性,例如Vista风格等。

    Windows Mobile 6.0SDK最新版可以包含两个版本,一个是针对Pocket PCPocket PC Phone Edition开发的Professional版本,另外一个则是针对Smartphone开发的Standard版本。在本专题中,我们主要是针对Pocket PC Phone Edition这种平台进行开发的,相对与Pocket PC它具备了通话的功能,而且硬件性能较之Smartphone有很大的提高,所以一般条件下安装Windows Mobile 6.0 Professional SDK即可。

    Windows Mobile 6.0 Professional SDK的下载地址如下:http://download.microsoft.com/download/f/2/3/f232f773-7edc-4300-be07-d3b76a5b3a91/Windows%20Mobile%206%20Professional%20SDK%20Refresh.msi

    Windows Mobile 6.0 Standard SDK的下载地址如下:

    http://download.microsoft.com/download/f/2/3/f232f773-7edc-4300-be07-d3b76a5b3a91/Windows%20Mobile%206%20Standard%20SDK%20Refresh.msi

    Windows Mobile 6.0 Professional SDK安装完毕后,大家可以通过开始”-“所有程序”-“Windows Mobile 6 SDK”-“Line of Business Extras”-“Mobile Line of Business Solution Accelerator”下载一个类似物流系统的移动行业解决方案,我将在本专题的最后部分对该项目进行详细的分析和讲解。该移动行业讲解方案的部分功能模块如3所示:


    3 “Mobile Line of Business Solution Accelerator”的登录模块和创建新订单模块

    你也可以在该链接直接下载“Mobile Line of Business Solution Accelerator”的示例代码:

    http://download.microsoft.com/download/7/e/6/7e635836-bf36-436b-b8cc-0b16c74ba9b7/MobileLineofBusinessSolutionAccelerator.msi

    默认状态下,安装Windows Mobile 6.0 Professional SDK会自动安装Windows Mobile 6.0的英文设备仿真器,而中文的设备仿真器是需要我们单独下载的进行安装的,Windows Mobile 6.0中文仿真器如图4所示。

    Windows Mobile 6 Professional 中文镜像的下载地址:http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Professional%20Images%20(CHS).msi

    Windows Mobile 6 Standard中文镜像的下载地址:http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Standard%20Images%20(CHS).msi


    4 Windows Mobile 6中文仿真器的今日界面

    Windows Mobile 6.0 SDK安装完毕后,我们就可以通过Visual Studio 2005来开发针对Windows Mobile 6.0的智能设备程序了。如图5所示,在智能设备栏中我们会发现多了“Windows Mobile 6 Professional“这一项,而且通过右侧的模板,我们可以创建五种不同类型的项目。

    5 Visual Studio 2005中创建Windows Mobile 6.0智能设备程序

    接下来我们要安装的是SQL Server 2005 Compact EditionSDK,该SDK包含用于在台式机上开发和部署应用程序的SQL Server 2005 Compact Edition 运行时(必须安装),而且对于不同类型处理器的移动设备,其对应的SQL Server 2005 Compact Edition组件安装包也是不同的。除此之外,SDK中还包含了的SQL Server 2005 Compact Edition的帮助文档,这大概是当前学习SQL Server 2005 Compact Edition的唯一权威资料了。

    笔者当前写作的阶段,SQL Server 2005 Compact Edition SDK的下载页面依然是无法打开的,这种状况大概已经持续了半年左右。下面我将给出SQL Server 2005 Compact Edition SDK直接下载地址:

    SQL Server 2005 Compact Edition SDK中文:http://download.microsoft.com/download/0/9/4/094d27fe-8d7f-4b0b-8130-555ed2c8b366/SSCE31SDK-CHS.msi

    SQL Server 2005 Compact Edition SDK英文:http://download.microsoft.com/download/e/5/b/e5b19eb6-4141-4dba-a1fb-e95693c1538f/SSCE31SDK-ENU.msi

    SQL Server 2005 Compact Edition SDK安装完毕后,就可以在其安装目录的“\v3.1\SDK\bin\Desktop”子文件夹中找到一个名为“SQLServerCE31-zh-CHS.msi”的文件,该文件就是用于在台式机上开发和部署应用程序的SQL Server 2005 Compact Edition 运行时。因为使用到SQL Server 2005 Compact Edition的智能设备托管程序需要引用“System.Data.SqlServerCe”命名空间,而该命名空间又是由“System.Data.SqlServerCe.resources.dll “文件提供的,为此必须在计算机上安装SQL Server 2005 Compact Edition 运行时。

    “v3.1\SDK\Docs\zh-CHS”子文件夹中的“SSCE31BOL-CHS.msi”文件就是SQL Server 2005 Compact Edition帮助文档,因为其内容非常详细,因此建议安装。在“\v3.1\SDK\bin\wce500”子文件夹中,包含了针对不同类型处理器的SQL Server 2005 Compact Edition组件安装包,如图6所示。至于如何将SQL Server 2005 Compact Edition的各个组件安装到移动设备上,将在下一小节详细介绍。

    6 针对7种不同处理器的SQL Server 2005 Compact Edition组件安装包

    1.3 SQL Server 2005 Compact Edition开发环境介绍

    通过使用 Microsoft Visual Studio 开发环境,可以开发使用 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 的应用程序。使用 Visual Studio 进行开发,可以最便捷地生成和部署使用 SQL Server Compact Edition 的应用程序。在 Visual Studio 中,可以通过使用 C# Microsoft Visual Basic 创建托管应用程序,也可以通过使用 Microsoft Visual C++ 选件(以前称为 Microsoft eMbedded Visual C++ 4.0)为台式机和设备创建本机应用程序。这是 Visual Studio 2005 套件的一部分。

    注意:

    SQL Server Compact Edition 不支持 Microsoft eMbedded Visual Basic

    Visual Studio 文件位置和说明

    下表按照位置列出了在使用 Visual Studio 2005 时安装到开发计算机上的 SQL Server Compact Edition 文件。在默认情况下,这些文件和文件夹在以下路径中创建:C:\Program Files\Microsoft Visual Studio 8

    位置

    内容

     \SmartDevices\SDK\SQL Server\Mobile\v3.0\platform\processor

    一系列子文件夹。每个文件夹包含:

    sqlce30.platform.processor.cab

    sqlce30.platform.processor.cab 文件包含 sqlcese30.dllsqlceqp30.dllsqlceme30.dll System.Data.SqlServerCe.dll

    sqlce30.repl. platform.processor.cab

      sqlce30.repl.platform.processor.cab 文件包含 sqlceca30.dllsqlceoledb30.dll sqlcecompact30.dll

      sqlce30.dev.lang.platform.processor.cab sqlce30.dev.lang.platform.processor.cab 文件包含 isqlw30.exe(实现 SQL Server Compact Edition 查询分析器的程序)和用于在开发过程中提供错误说明的 sqlceerr30lang.dll

     \SmartDevices\SDK\SQL Server\Mobile\v3.0

    一个包含下列内容的文件夹:SQL Server Compact Edition 自述文件 (ssmreadme.htm)SQL Server Compact Edition 服务器工具安装程序 (sqlce30setup[lang].msi)SQL Server 2000 复制组件 (sql2k[lang]sp3a.msi) 以及 SQL Server Compact Edition 本机头文件(ssceOleDB30.hca_merge30.h ssceerr30.h)

     \SDK\v2.0\BootStrapper\Packages\SQL Server Compact Edition\

    一系列文件夹,其中包含用于将 SQL Server Compact Edition 安装在台式机和 Tablet PC 上的 SQL Server Compact Edition 安装程序 (SQLServerEv31-[lang])

    托管应用程序开发

    对于设备应用程序,在 Microsoft .NET Compact Framework 应用程序中,添加对 System.Data.SqlServerCe 命名空间的引用。System.Data.SqlServerCe 命名空间将在 .NET Compact Framework 中显示 SQL Server Compact Edition。然后,您可以创建数据库、数据库表和列,并用数据填充数据库。

    对于桌面应用程序,在 Microsoft .NET Framework 应用程序中,添加对 System.Data.SqlServerCe 命名空间的引用。若要添加对 System.Data.SqlServerCe 的引用,请在解决方案资源管理器中,右键单击引用,然后选择添加引用。在添加引用对话框中,单击浏览,找到 %Program File%\Microsoft SQL Server Compact Edition\v3.1 文件夹,选择 System.Data.SqlServerCe.dll,然后单击确定

    注意:

    如果要使用 Visual Studio 2005 RTM 版本来开发应用程序,则 System.Data.SqlServerCe 命名空间的路径将为 %Program Files%\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0。如果要使用 Visual Studio 2005 SP1 来开发应用程序,则路径将为 %Program Files%\Microsoft SQL Server Compact Edition\v3.1

    System.Data.SqlServerCe 引用将被添加到解决方案资源管理器内的引用窗格中。添加 System.Data.SqlServerCe 命名空间时,“SQL Server Compact Edition”将出现在 .NET Framework 中。然后,您可以创建数据库、数据库表和列,并用数据填充数据库。

    当生成引用 System.Data.SqlServerCe 命名空间的 .NET Compact Framework 应用程序时,如果该应用程序部署到智能设备或 Pocket PC 仿真程序上,Visual Studio 将自动进行检查,以查看该设备是否安装了 .NET Compact Framework SQL Server Compact Edition 客户端组件。如果未检测到这些组件,则会在您首次部署引用 System.Data.SqlServerCe 命名空间的应用程序时自动在设备上安装这些组件。

    .NET Compact Framework .NET Framework 还包含 System.Data.SqlClient 命名空间,用于开发直接访问 SQL Server 2000 或更高版本中数据库的应用程序。

    若要将托管应用程序部署到移动设备,请在 Visual Studio 2005 中的调试菜单上选择启动。然后决定部署到连接的智能设备还是 Pocket PC 仿真程序。设备上的默认安装位置是 \Windows

    如果从 Visual Studio 中部署应用程序,将不必在设备上单独安装 SQL Server Compact Edition 组件或 .NET Compact Framework

    用于部署托管应用程序的 ClickOnce 部署

    ClickOnce 是受 SQL Server Compact Edition 支持的新的应用程序部署技术,用于在台式机和 Tablet PC 上部署托管应用程序。ClickOnce 使得将基于 Windows 的应用程序部署到 Web 服务器或网络文件共享位置的过程得以简化。对于管理员来说,部署或更新应用程序就是更新服务器上的文件。您不必逐个更新每个客户端。Visual Studio 2005 为发布和更新用 ClickOnce 部署的应用程序提供了完整的支持。ClickOnce 部署对使用 Visual BasicVisual C# Visual J# 创建的项目可用,但对 Visual C++ 不可用。

    如何集成 ClickOnce SQL Server Compact Edition

    注意:

    如果要使用原始版本的 Visual Studio 2005,则必须执行以下步骤将 ClickOnce SQL Server Compact Edition 集成。Visual Studio 2005 SP1 版本会自动将 ClickOnce SQL Server Compact Edition 集成。

    执行下面步骤可以使 ClickOnce SQL Server Compact Edition 集成:

    SQL Server 下载 SqlEv31ClickOnce_EN.zip 文件。它包含:

    Product.xml,用于定义基本包。

    Package.xml,用于定义任何本地化特定的信息或功能。

    sqlev31eula-EN.txt,包含 Microsoft 软件许可条款。

    将这些文件放入 /SQL Server Compact Edition 目录中,如下所示:

    %Program Files%\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\SQL Server Compact Edition\Product.xml

    %Program Files%\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\SQL Server Compact Edition\en\Package.xml

    %Program Files%\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\SQL Server Compact Edition\en\sqlev31eula-EN.txt

    若要保留 SQL Server Compact Edition 安装文件 (SQLServerEv31-EN.msi) 的本地副本,请将其复制到 %Program Files%\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\SQL Server Compact Edition\en 文件夹中。

    Visual C++ 进行本机设备应用程序开发

    Visual C++ for Devices Visual Studio 中的一个可用选件,您可以使用该选件来开发使用 SQL Server Compact Edition 的本机应用程序。

    使用 Visual C++ 开发 SQL Server Compact Edition 应用程序时,请创建空白的 Visual C++ 项目,并在项目中包括 SQL Server Compact Edition。若要进行此操作,请在项目菜单上,单击添加文件,然后将 SsceOleDB.hca_mergex30.h Ssceerr30.h 添加到您的项目中。

    使用 Visual C++ 开发本机应用程序时,必须手动将 SQL Server Compact Edition 复制到智能设备。有关详细信息,请参阅在设备上安装和部署 SQL Server Compact Edition。通过 SQL Server Compact Edition 安装程序 (SQLServerEv31-EN.msi),可以将 SQL Server Compact Edition 部署在台式机和 Tablet PC 上。

    1.4 SQL Server 2005 Compact Edition服务器环境介绍

    如果 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 应用程序需要在 Microsoft SQL Server 数据库和 SQL Server Compact Edition 数据库之间交换数据,则您必须安装并配置以下项:

    Microsoft Internet 信息服务 (IIS)

    SQL Server 2005 SQL Server 2000

    SQL Server Compact Edition 服务器工具(安装工具)

    下面的关系图显示了 SQL Server Compact Edition 环境,在这种环境中,可以开发应用程序并在 SQL Server SQL Server Compact Edition 之间交换数据。

    服务器环境的类型

    SQL Server Compact Edition 环境可以配置为单服务器环境或多服务器环境。在单服务器环境中,所有组件在一台计算机上。在多服务器环境中,IIS SQL Server 位于不同的计算机上。

    重要事项:

    SQL Server Compact Edition 服务器工具必须安装在运行 IIS 的计算机上。

    如上图所示,智能设备可以连接到:

    1、单服务器环境,其中 IIS SQL Server 在同一台计算机上运行。

    2、多服务器环境,其中 IIS SQL Server 在两台独立的计算机上运行。

    3、运行开发环境的工作站。

    多服务器环境是部署应用程序最常见的情形。在生产中通常使用多个服务器,因为这样可以提供更大的灵活性,而且可以更好地满足复杂的安全性需求。

    如果您是首次安装 SQL Server Compact Edition,请考虑安装单服务器环境。这样,您可以通过在一台计算机上安装所有必需的服务器软件来简化安装过程。如果要进一步简化安装,您可以将单服务器环境与开发环境合并到一台计算机上,从而建立一个完整的开发与测试环境。有关安装单服务器环境的详细信息,请参阅单服务器环境。

    成功安装单服务器环境之后,您就可以轻松迁移至多服务器环境。

    1.5 在台式机上安装SQL Server Compact Edition

    Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile) 的下一版本。SQL Server Compact Edition 可用于台式机,不需要安装 Visual Studio 2005 SQL Server 2005。适用于台式机和 Tablet PC SQL Server Compact Edition 安装程序 (SQLServerEv31-EN.msi) 中包含仅适用于台式机和 Tablet PC 计算机的运行时二进制文件。安装程序包含以下库:

    SQLCESE30.DLL

    SQLCEQP30.DLL

    SQLCEME30.DLL

    SQLCEOLEDB30.DLL(OLEDB 数据访问接口)

    SQLCECA30.DLL

    SQLCECOMPACT30.DLL

    SQLCEER30xx.DLL

    System.Data.SqlServerCe.dll(ADO.NET 数据访问接口)

    适用于台式机和 Tablet PC SQL Server Compact Edition 安装程序发行版不包括用于在移动设备或 SQL Server Compact Edition 服务器工具(也称为连接组件)上安装 SQL Server Compact Edition CAB 文件。

    安装要求

    除非正在使用 OLEDB 数据访问接口,否则必须安装 Microsoft .NET Framework 2.0 或更高版本才能安装 SQL Server Compact Edition。可以从 .NET Framework 2.0 下载中心下载 .NET Framework 2.0

    由于此安装程序只包含运行时二进制文件,所以,在台式机和 Tablet PC 计算机上安装 SQL Server Compact Edition 时,不需要使用以下软件:

    Internet 信息服务 (IIS) 5.x 或更高版本的 IIS(仅适用于 32 )

    ActiveSync 4.0 或更高版本

    Internet Explorer 6.0

    当在台式机和 Tablet PC 计算机上安装 SQL Server Compact Edition 时,不需要使用 Visual Studio SQL Server

    重要事项:

    若要在 SQL Server SQL Server Compact Edition 之间复制数据,必须安装复制组件。有关安装 SQL Server 复制组件的详细信息,请参阅硬件和软件要求。还必须安装服务器工具 (Sqlce30setupen.msi)。有关服务器工具的详细信息,请参阅 Connectivity Tools(连接工具)

    安装位置

    适用于台式机和 Tablet PC 计算机的 SQL Server Compact Edition 安装程序可在固定位置安装 SQL Server Compact Edition。固定位置安装为 SQL Server Compact Edition 提供了可服务性支持。SQL Server Compact Edition 安装程序将在全局程序集缓存 (GAC) 中安装托管程序集,如 System.Data.SqlServerCe.dll,并在注册表中注册本机 DLL,如 OLE DB 访问接口 (sqlceoledb30.dll)。由于安装了注册表,因此用户只能利用管理凭据安装 SQL Server Compact EditionSQL Server Compact Edition 可安装在以下位置:

    %Program Files%\Microsoft SQL Server Compact Edition \v3.1

    如果程序文件目录位于 C 驱动器中,则 SQL Server Compact Edition 运行时二进制文件将安装在 C:\Program Files\Microsoft SQL Server Compact Edition \v3.1 目录中。

    在安装 SQL Server Compact Edition 之后,可以在添加或删除程序中看到该程序显示为“Microsoft SQL Server 2005 Compact Edition”

    DataDirectory 支持

    DataDirectory 是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory 简化了项目的共享和应用程序的部署。例如,无需使用以下连接字符串:

    "Data Source= c:\program files\MyApp\Mydb.sdf"

    通过使用 |DataDirectory|(包含在如下所示的竖线中),即可具有以下连接字符串:

    "Data Source = |DataDirectory|\Mydb.sdf"

    可以通过调用 AppDomain.SetData AppDomain 上设置 DataDirectory 属性。

    注意:

    .NET Compact Framework 不支持 AppDomain.SetData。但是,在为移动设备创建应用程序时,需要使用 .NET Compact Framework 数据访问接口。因此,如果在为移动设备编写应用程序时使用了 DataDirectory 属性,则 SQL Server Compact Edition 将会返回一个错误。

    如果没有设置 DataDirectory 属性,则会应用以下默认规则来访问数据库文件夹路径:

    对于已置于客户端计算机目录中的应用程序,此数据库路径将是置入该应用程序的文件夹。例如,如果 MyApp.exe 置入 /MyDir 文件夹中,则可对 /MyDir 文件夹进行访问。

    对于在 ClickOnce 下运行的应用程序,将会为此目的创建一个数据文件夹,并可对其进行访问。

    对于 Web 应用程序,则可对 App_Data 文件夹进行访问。通过使用 AppDomain.SetData,可以将 DataDirectory 设置为 App_Data 文件夹。

    2篇:SQL Server 2005 Compact Edition 基本操作

    Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 提供各种功能来创建、访问、修改、保护和维护数据,在这里我们只做简单介绍。

    2.1 在服务器上创建SQL Server Compact Edition数据库

    本主题将介绍如何在运行 Microsoft SQL Server 2005 的计算机上创建 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库。

    在服务器上创建 SQL Server Compact Edition 数据库。

    SQL Server Management Studio 中,打开对象资源管理器。

    在对象资源管理器中,单击连接,然后选择“SQL Server Compact Edition”

    连接到服务器对话框的数据库文件下拉列表中,选择“<新建数据库…>”

    创建新的 SQL Server Compact Edition 数据库对话框中,为新数据库文件键入文件路径和文件名。您也可以选择默认排序顺序和选择是否要对数据库进行加密或密码保护。如果选择对数据库进行加密或密码保护,请键入密码,然后单击确定

    单击连接,连接到新的 SQL Server Compact Edition 数据库。此数据库现在将显示在对象资源管理器中。

    完成。

    2.2 Engine对象创建SQL Server Compact Edition数据库

    本主题将介绍如何以编程方式使用 SqlServerCe.Engine 对象的 CreateDatabase 方法创建 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库。

    使用 Engine 对象创建 SQL Server Compact Edition 数据库。

    1、初始化新的 Engine 对象。

    以下是引用片段:
    SqlCeEngine engine = new SqlCeEngine();

    设置 Engine 对象的 LocalConnectionString 属性。LocalConnectionString 属性指定将要创建的数据库的名称和位置,还可能会指定其他数据库选项,包括加密。

    以下是引用片段:
    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
      "Password='s$;2'!dS64'; Encrypt = TRUE;";

    调用 CreateDatabase 方法创建数据库。

    以下是引用片段:
    engine.CreateDatabase();

    示例

    下面的示例创建了名为 Test.sdf 的新数据库。

    C#

    以下是引用片段:
    System.IO.File.Delete("Test.sdf");
      string connString = "Data Source='Test.sdf'; LCID=1033; Password=\"s$;2'!dS64\"; Encrypt = TRUE;";
    SqlCeEngine engine = new SqlCeEngine(connString);
    engine.CreateDatabase();

    Visual Basic

    以下是引用片段:
    System.IO.File.Delete("Test.sdf")
      Dim connString As String = "Data Source='Test.sdf'; LCID=1033; Password=""s$;2'!dS64""; Encrypt = TRUE;"
    Dim engine As New SqlCeEngine(connString)
    engine.CreateDatabase()

    以上只对C#Visual Basic给出了示例代码,大家主要是掌握一个大体的方法和思路,具体使用哪种语言实现并不是我们探讨的重点。

    2.3 如何删除SQL Server 2005 Compact Edition数据库(编程方式)

    本主题将介绍如何删除 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库。由于 SQL Server Compact Edition 数据库是文件系统中的文件,因此需要通过删除文件来删除 SQL Server Compact Edition 数据库。

    删除 SQL Server Compact 数据库

    调用 System.IO.File.Delete 方法,并传入 SQL Server Compact Edition 数据库的路径和文件名。

    以下是引用片段:
    File.Delete("Test.sdf");

    示例

    下面的示例删除一个现有 SQL Server Compact Edition 数据库,然后创建一个新数据库。

    C#

    以下是引用片段:
    System.IO.File.Delete("Test.sdf");
     string connString = "Data Source='Test.sdf'; LCID=1033; Password=\"s$;2'!dS64\"; Encrypt = TRUE;";
    SqlCeEngine engine = new SqlCeEngine(connString);
    engine.CreateDatabase();

    Visual Basic

    以下是引用片段:
    System.IO.File.Delete("Test.sdf")
     Dim connString As String = "Data Source='Test.sdf'; LCID=1033; Password=""s$;2'!dS64""; Encrypt = TRUE;"
    Dim engine As New SqlCeEngine(connString)
    engine.CreateDatabase()

    以上只对C#Visual Basic给出了示例代码,大家主要是掌握一个大体的方法和思路,具体使用哪种语言实现并不是我们探讨的重点。

    2.4 如何压缩SQL Server 2005 Compact Edition数据库(编程方式)

    本主题将介绍如何使用 SqlServerCe.Engine 对象的 Compact 方法压缩 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库。

    压缩 SQL Server Compact Edition 数据库

    创建一个 Engine 对象,并传入指向要压缩的现有数据库的连接字符串。

    以下是引用片段:
    SqlCeEngine engine = new SqlCeEngine("Data Source = AdWks.sdf");

    调用 Compact 方法。调用 Compact 方法时,您还可以指定新的数据库属性,包括添加密码保护或加密。

    以下是引用片段:
    engine.Compact("Data Source=; Password = a@3!7f$dQ;");

    示例

    下面的示例压缩一个现有 SQL Server Compact Edition 数据库,并说明如何更改数据库属性。

    C#

    以下是引用片段:
      SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
      // Specify null destination connection string for in-place compaction
      //
      engine.Compact(null);
      // Specify connection string for new database options. The following
      // tokens are valid:
      // - Password
      // - LCID
      // - Encrypt
      //
      // All other SqlCeConnection.ConnectionString tokens are ignored
      //
      engine.Compact("Data Source=; Password =a@3!7f$dQ;");

    Visual Basic

    以下是引用片段:
      Dim engine As New SqlCeEngine("Data Source = AdventureWorks.sdf")
      ' Specify null destination connection string for in-place compaction
      engine.Compact(Nothing)
      ' Specify connection string for new database options. The following
      ' tokens are valid:
      ' - Password
      ' - LCID
      ' - Encrypt
      '
      ' All other SqlCeConnection.ConnectionString tokens are ignored
      '
      engine.Compact("Data Source=; Password =a@3!7f$dQ;")

    以上只对C#Visual Basic给出了示例代码,大家主要是掌握一个大体的方法和思路,具体使用哪种语言实现并不是我们探讨的重点。

    2.5 如何收缩SQL Server 2005 Compact Edition数据库 (编程方式)

    本主题介绍如何使用 SqlServerCe.Engine 对象的 Shrink 方法收缩 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库。

    收缩 SQL Server Compact Edition 数据库

    创建一个 Engine 对象,并传入指向要收缩数据库的连接字符串。

    以下是引用片段:
    SqlCeEngine engine = new SqlCeEngine("Data Source = AdWks.sdf");

    调用 Shrink 方法。

    以下是引用片段:
    engine.Shrink();

    示例

    此示例将收缩现有的 SQL Server Compact Edition 数据库。

    C#

    以下是引用片段:
      SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
      engine.Shrink();

    Visual Basic

    以下是引用片段:
      Dim engine As New SqlCeEngine("Data Source = AdventureWorks.sdf")
      engine.Shrink()

    以上只对C#Visual Basic给出了示例代码,大家主要是掌握一个大体的方法和思路,具体使用哪种语言实现并不是我们探讨的重点。

    2.6 如何维护SQL Server 2005 CE数据库(非编程方式)

    维护数据库时将涉及对数据库进行收缩、压缩和修复操作。通过使用 SQL Server Management Studio,可以在同一对话框内执行所有这些任务。

    如何收缩数据库

    Management Studio 中,打开对象资源管理器。

    在对象资源管理器中,单击连接,然后选择“SQL Server Compact Edition”

    连接到服务器对话框中,选择要收缩的 SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库,然后单击连接

    在对象资源管理器中,右键单击所添加的 SQL Server Compact Edition 数据库,然后选择属性

    数据库属性对话框将打开。从左侧窗格中选择收缩和修复

    单击通过删除空闲页收缩数据库,然后单击确定

    如何压缩数据库

    Management Studio 中,打开对象资源管理器。

    在对象资源管理器中,单击连接,然后选择“SQL Server Compact Edition”

    连接到服务器对话框中,选择要压缩的 SQL Server Compact Edition 数据库,然后单击连接

    在对象资源管理器中,右键单击所添加的 SQL Server Compact Edition 数据库,然后选择属性

    数据库属性对话框将打开。选择执行完全数据库压缩

    文件选项下,您可以选择在压缩之后替换现有的数据库,或使用新的文件名创建新的数据库。通过选择覆盖现有数据库文件复选框,您可以修改现有数据库的名称与位置,然后进行替换。

    如何修复数据库

    Management Studio 中,打开对象资源管理器。

    在对象资源管理器中,单击连接,然后选择“SQL Server Compact Edition”

    连接到服务器对话框中,选择要修复的 SQL Server Compact Edition 数据库,然后单击连接

    在对象资源管理器中,右键单击所添加的 SQL Server Compact Edition 数据库,然后选择属性

    数据库属性对话框将打开。选择修复物理损坏的数据库

    如果选中恢复已损坏的行复选框,将可以恢复已损坏的行。

    文件选项下,您可以选择在修复之后替换现有的数据库,或使用新的文件名创建新的数据库。通过选择覆盖现有数据库文件复选框,您可以修改现有数据库的名称与位置,然后进行替换。

    2.7 SQL Server 2005 Compact Edition的安全性

    本主题将介绍如何从 SQL Server Management Studio 帮助保护现有 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库。

    保护 SQL Server Compact Edition 数据库

    Management Studio 中,打开对象资源管理器。

    在对象资源管理器中,单击连接,然后选择“SQL Server Compact Edition”

    连接到服务器对话框中,选择要配置的 SQL Server Compact Edition 数据库,然后单击连接

    在对象资源管理器中,右键单击刚才添加的 SQL Server Compact Edition 数据库,然后选择属性

    数据库属性窗口中,选择设置密码页。

    输入旧密码(如果存在),然后键入数据库的新密码。您也可以选择加密数据库中的数据(方法是选择加密选项)。仅当提供了数据库的密码时,此选项才可用。单击确定保存所做的更改。

    2.8 SQL Server Compact Edition创建移动应用程序

    此演练将介绍如何在使用 Microsoft SQL Server 2005 Compact Edition Microsoft Visual Studio 2005 中创建应用程序。SQL Server Compact Edition 数据库将成为 SQL Server 2005 发布的订阅服务器,并且将使用合并复制从 SQL Server 2005 数据库中将信息下载到 SQL Server Compact Edition 数据库。

    在此演练中,您将执行下列步骤:

    1.配置 SQL Server 2005 发布。

    2.配置 Internet 信息服务 (IIS) 以进行复制。

    3.创建 SQL Server Compact Edition 订阅。

    4.创建应用程序。

    5.部署应用程序并测试订阅。

    必备项

    若要按照此演练中所写的步骤执行此演练,则必须满足下列条件:

    安装有 Windows XP IIS 的计算机。

    SQL Server 2005 Service Pack 2 (SP2) 或更高版本,与 Visual Studio 安装在同一台计算机上。

    SQL Server 2005 任务

    在创建应用程序之前,必须在 SQL Server 2005 中配置发布。在下列步骤中,您将创建一个示例数据库,然后从该数据库发布数据。您将使用预建的脚本文件创建数据库,然后使用新建发布向导来创建发布。

    创建数据库并在其中填充数据

    1、打开 SQL Server Management Studio

    2、当提示您连接服务器时,请在服务器名称中键入 (local),然后单击连接

    3、打开一个新查询窗口。创建 SQL Server Compact Edition 数据库,并用数据填充该数据库。

    以下是引用片段:
      USE master;
      GO
      IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = 'SQLMobile')
      BEGIN
      DROP Database SQLMobile;
      END
      GO
      CREATE DATABASE SQLMobile;
      GO
      USE SQLMobile;
      GO
      CREATE TABLE MembershipData (MemberID INTEGER IDENTITY (1,1)
      CONSTRAINT pkMemberID PRIMARY KEY, MemberName NVarChar (50));
      CREATE TABLE FlightData (MemberID INTEGER FOREIGN KEY REFERENCES
      MembershipData(MemberID), Destination NVarChar (50), FlightStatus
      NVarChar(50), ArrivalDate DATETIME, FlownMiles INTEGER);
      INSERT INTO MembershipData (MemberName) VALUES ('Mr Don Hall');
      INSERT INTO MembershipData (MemberName) VALUES ('Mr Jon Morris');
      INSERT INTO MembershipData (MemberName) VALUES ('Ms TiAnna Jones');
      INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
      VALUES (1, 'Seattle', 'Flight Delayed 1 hour', '8/25/00', '20000');
      INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
      VALUES (2, 'London', 'Flight on time', '9/12/00', '15000');
      INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
      VALUES (3, 'Sydney', 'Flight Gate Closing', '11/5/00', '30000');
      INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
      VALUES (1, 'Tokyo', 'Delayed Fog', '5/25/00', '25000');
      INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
      VALUES (2, 'Minneapolis', 'Flight on time', '5/1/00', '1000');
      INSERT INTO FlightData (MemberID, Destination, FlightStatus, ArrivalDate, FlownMiles)
      VALUES (3, 'Memphis', 'Flight Gate Closing', '1/5/00', '1000');
      GO

    4、单击执行(!)”运行该脚本并创建数据库。此时,将运行该脚本,创建一个名为 SQLMobile 的新数据库。

    注意:

    您还可以按 F5,或者从查询菜单中选择执行来运行该查询。

    5、若要确认该数据库已创建,请在对象资源管理器中,展开“(本地)”,展开数据库,然后展开“SQLMobile”。如果没有列出 SQLMobile 数据库。请右键单击数据库,然后选择刷新以更新数据库列表。

    准备服务器以发布数据

    在创建发布之前,必须创建快照代理用户帐户,并创建一个将在其中存储快照文件的共享文件夹,准备服务器以进行发布。创建快照文件夹之后,该文件夹将用于服务器上的所有发布。如果以前已在此服务器上创建了发布,您可以跳过这些步骤。

    创建快照用户帐户

    1、从控制面板管理工具中打开计算机管理

    2、在计算机管理中,展开系统工具,展开本地用户和组,右键单击用户,然后选择新用户

    3、在新用户对话框中,键入以下信息,然后单击创建

     

    字段

    用户名

    snapshot_agent

    密码

    p@ssw0rd

    确认密码

    p@ssw0rd

    用户下次登录时须更改密码

    未选中

    密码永不过期

    选中

    重要事项:

    这些设置应该仅用于测试。在生产环境中,请确保用户帐户设置符合您的网络安全要求。通常,您将对快照代理使用域用户帐户而不是使用本地用户帐户。

    创建快照文件夹

    Windows 资源管理器中,创建一个名为“snapshot”的新文件夹。在此演练中,您可以在驱动器 C 的根目录下创建该文件夹:c:\snapshot。右键单击“snapshot”文件夹,然后选择共享和安全

    共享选项卡上,选择共享该文件夹,然后单击权限

    快照的权限中,单击添加

    输入要选择的对象名称中,键入 computername\snapshot_agent(其中 computername 为本地计算机的名称),单击检查名称,然后单击确定

    快照的权限中,选择“snapshot_agent”,分配更改读取共享权限,然后单击确定

    选择安全选项卡。

    单击添加

    输入要选择的对象名称中,键入 computername\snapshot_agent(其中 computername 为本地计算机的名称),单击检查名称,然后单击确定

    选择“snapshot_agent”,然后将写入权限添加到已启用的权限列表中。现在,snapshot_agent 帐户将被授予下列权限:

    读取和执行

    列出文件夹目录

    读取

    写入

    单击确定关闭快照属性窗口。

    关闭 Windows 资源管理器。

    3篇:SQL Server 2005 Compact Edition 疑难解答

    本篇介绍使用SQL Server 2005 Compact Edition过程中几个常见的疑难问题。

    3.1 SQL Server 2005 Compact Edition错误范围

    对于 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition)Microsoft SQL Server 可生成以下类别的错误:

    类别

    范围

    引擎错误

    25000-27999

    复制传输错误

    28000-28499

    客户端代理错误

    28500-28999

    服务器代理错误

    29000-29499

    消息协议错误

    29500-29999

    查询处理器错误

    25500-26499

    OLEDB 错误

    0x80040E00L-0x00040EDDL

    SQL Server Compact Edition 返回错误时,使用该错误的本机编号可以在所列的表中查找错误说明。这些表中还列出了参数。

    注意 尽管错误可能含有参数,但并非所有出现的错误都会返回参数。若要查找其他 HRESULT 错误,请参阅 Microsoft Visual Studio 2005 附带的 Oledberr.hWinerror.h 以及 Wininet.h。您也可参阅 OLEDB 错误。有关 HRESULT 值的详细信息,请搜索 MSDN Library Microsoft 知识库。

    3.2 SQL Server 2005 Compact Edition常见错误

    下表列出了在使用 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 时可能会遇到的常见错误以及建议的解决方案。

    本机错误

    错误号

    解决方案

    28037

    80072EFD

    用户的设备必须具有网络连接。例如,设备可能不具备正常运行的调制解调器、网卡或 USB 连接。

    或者

    请确保运行 Microsoft Internet 信息服务 (IIS) 的计算机可用,并且确保 ISP 或网络正常运转。

    28017

    80004005

    请确保指定了正确的虚拟目录。例如,URL 可能拼写错误。

    0

    80045017

    SQL Server Compact Edition 复制提供程序必须具有对快照文件夹的读权限。需要读权限是因为 SQL Server Compact Edition 复制提供程序可以将初始订阅下载到设备。

    SQL Server Compact Edition 复制提供程序运行时使用的标识取决于配置 IIS 身份验证的方式。

    0

    80045020

    请确保支持客户端提供的列的数据类型长度。

    SQL Server Compact Edition 仅支持 Unicode 数据类型。它会将 ANSI 字符数据类型转换成它们的 Unicode 等效字符。

    例如,如果您订阅一个表,且表中包含具有 256 个字符的 char 列,SQL Server Compact Edition 会将该表映射到 SQL Server Compact Edition ntext 列。这样,如果用户将一条记录添加到 ntext 列,且记录中包含大于 256 个字符的值,用户就会收到一条错误信息,因为数据无法放到发布服务器上的 char 列中。

    若要改正此错误,如果您无法更改发布服务器的架构来避免这种类型的数据类型映射,那么请添加应用程序级别的逻辑来限制用户可以在他们的设备上输入的字符数。

    28560

    80040E14

    快照格式必须设置为发布的字符模式。

    25016

     

    请确保没有发生重复键冲突。

    在用户将记录添加到包含标识列的表中时,可能会发生这样的冲突。在请求表时,远程数据访问 (RDA) 不会管理标识列。

    或者

    请确保已配置了复制发布来管理发布中表的标识列。

    0

    80004005

    请确保对于 RDA Pull 方法的 OLEDBConnectionString 参数,用户 ID、密码和初始目录是正确的。

    25546

    80040E14

    请确保不要尝试为带有 partition_options 的项目修改在参数化筛选器中引用的列。在此类型的项目中筛选的列都标记为只读。

    28627

    80040E4D

    请验证用于 SQL Server 发布服务器的密码是否正确。

    29046

    80040E09

    请确保不要尝试修改仅限下载的项目。仅限下载的项目类型被标记为只读。

    25027

     

    此错误可能会发生在两个实例中:CREATE / ALTER TABLE INSERT/UPDATESQL Server Compact Edition 不允许固定列的行长度超过 8060 个字节。但是,SQL Server Compact Edition 允许使用可变长度列,从而行可以超过 8060 个字节的理论限制(NTEXT/IMAGE 不包括在内)。例如,可以创建包含 100 NVARCHAR 列的表,每列的长度为 200 字节,而不会发生错误。但是,如果使用 INSERT UPDATE 来修改具有可变长度 CHAR 数据类型 (NVarChar) 的列中的行,而该数据类型引起了整个行长度超过 8060 字节,那么此错误可能会发生。

    3.3 SQL Server Compact Edition启用日志记录

    在运行 Microsoft Internet 信息服务 (IIS) 的计算机上,Microsoft SQL Server Compact Edition 服务器代理可以将错误、警告和信息性消息记录到日志文件中。默认情况下,日志记录不可用。在启用日志记录时,会将 sqlcesa30.log 文件写入 SQL Server Compact Edition IIS 虚拟目录。在诊断远程数据访问 (RDA) 或复制问题时,日志中记录的信息非常有用。

    通过 SQL Server Compact Edition 服务器代理启用日志记录

    请创建以下注册表项(如果不存在)

    HKLM\Software\Microsoft\MSSQLSERVERCE\3.0\Transport

    HKLM\Software\Microsoft\MSSQLSERVERCE\Transport 项下,创建 DWORD 项值。项值的名称必须以与 SQL Server Compact Edition IIS 虚拟目录相关的本地路径开始。例如,如果 Sqlcesa30.dll 位于 NTFS 文件目录 C:\Inetpub\Sqlce\NorthWind 中,则必须将注册表值命名为 C:\Inetpub\Sqlce\NorthWind\LOGGING_LEVELDWORD 项的数据值必须是一个介于 0 3 之间的值。注册表项中包含的数据值控制 SQL Server Compact Edition 服务器代理执行的日志记录级别。

    下表说明应分配给注册表项值以定义日志记录级别的数据值:

    LOGGING_LEVEL

    说明

    0

    日志记录不可用。

    1

    记录错误。

    2

    记录错误和警告。

    3

    记录错误、警告和信息性消息。

    重要提示 当指定 LOGGING_LEVEL 3 时,SQL Server Compact Edition 服务器代理会生成非常大的日志文件。通常情况下不应使用此日志记录级别,但是在尝试诊断问题时非常有用。

    4篇:其他

    关于SQL Server 2005 Compact Edition的其他介绍。

    4.1 SQL概述For SQL Server Compact Edition

    您可以使用SQL语法查询数据库,并插入、更新和删除 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 数据库表中的行。

    语法约定

    本参考资料中的语法关系图使用下列约定:

    约定

    适用范围

    全大写

    SQL Server Compact Edition 关键字。

    斜体

    用户提供的 SQL Server Compact Edition 语法参数。

    |(竖线)

    分隔方括号或大括号内的语法项。您只能选择其中的一项。

    [ ](方括号)

    可选的语法项。请勿键入方括号。

    {}(大括号)

    必需的语法项。请勿键入大括号。

    [,...n]

    指示前面的项可以重复 n 次。具体值由逗号分隔。

    [ ...n]

    指示前面的项可以重复 n 次。具体值由空格分隔。

    粗体

    数据库名称、表名、列名、索引名称、存储过程、实用工具、数据类型名称以及必须严格按所示内容键入的文本。

    <标签> ::=

    语法块的名称。此约定用于对冗长语法的各部分或可以在语句中多个位置使用的语法单元进行分组和标记。可以使用语法块的每个位置都用 V 形括起标签来指示:<标签>

    查询元素

    SQL Server Compact Edition 中查询数据库时,可以使用标识符、分隔符和注释。

    标识符

    数据库对象的名称称为标识符。对象名称是在定义对象时创建的。标识符用于引用对象。

    在使用 SQL Server Compact Edition 时,由于必须首先连接到设备中已经存在的数据库才能运行查询,因此您不必使用所有者、数据库或服务器名称来限定对象标识符。您可以使用下列方法之一引用对象:

    object_name

    table_name

    分隔符

    当标识符不符合常规标识符的格式规则时或将保留关键字用作标识符时,必须分隔标识符。下表汇总了 SQL Server Compact Edition 中分隔符的用法:

    分隔符

    SQL Server Compact Edition 中的用法

    方括号 [ ]

    不支持

    双引号 " "

    不符合规则的标识符:

    多词标识符

    用作标识符的保留字

    单引号 ' '

    字符串数据值

    注释

    您可以将不应执行的文本字符串作为注释包括在代码中。注释可以用于对代码进行说明或暂时禁用 SQL 语句的某些部分。

    您可以使用下列任一样式,将文本指定为注释:

    以下是引用片段:
      /* text_of_comment */
      ---- text_of_comment

    默认行为

    通过 SQL Server Compact Edition 查询分析器执行的查询在运行时具有以下默认行为(不能进行更改)

    QUOTED_IDENTIFIER_ON

    ANSI_NULLS_ON

    ANSI_PADDING_ON

    ANSI_NULL_DFLT_ON_ON

    CONCAT_NULL_YIELDS_NULL_ON

    4.2 SQL Server CE.NET Compact Framework概述

    Microsoft 使用 SQL Server 2005 Compact Edition (SQL Server CE),您可以在支持的设备上创建、管理和维护本地数据库。您还可以与 Microsoft SQL Server 数据库同步此本地数据库,在设备和服务器之间交换数据。

    使用 .NET Compact Framework

    Microsoft .NET Compact Framework 用于为设备快速开发应用程序。.NET Compact Framework 包含两个主要组件:

    公共语言运行时

    公共语言运行时是一种环境,它通过提供线程的核心服务和内存管理,负责在应用程序运行时管理代码。面向运行时设计的代码称为托管代码,而不使用运行时的代码则称为非托管代码,或本机代码。用于智能设备的本机应用程序是使用 Microsoft Visual C++ for Devices 生成的,而托管应用程序是使用一种 .NET 编程语言(包括 Microsoft Visual Basic Microsoft Visual C#)生成的。

    .NET Compact Framework 类库

    .NET Compact Framework 类库提供了可重用的类,从用户界面开发到线程管理,再到数据库访问,这些类可以缩短开发时间和简化许多常规编程任务。

    对于数据库访问,.NET Compact Framework 包括 System.Data 命名空间。它使您能够使用 ADO .NET. 来访问 SQL Server SQL Server Compact Edition 数据库。由于 ADO .NET 提供了对多种数据源的一致访问方式,因此开发使用 SQL Server Compact Edition 的应用程序与开发使用其他许多数据库源的应用程序是相似的。当访问 SQL Server Compact Edition 数据库时,通常需要使用 System.Data.SqlServerCe 命名空间。

    注意:

    若要开发面向 .NET Compact Framework 的应用程序,必须安装 Microsoft Visual Studio 2003 Microsoft Visual Studio 2005。在 Visual Studio 中,可以使用 Microsoft C#Microsoft Visual Basic 或同时使用这两种语言开发应用程序。

    入门

    System.Data.SqlServerCe 命名空间提供了在编写使用 SQL Server Compact Edition .NET 应用程序时必须具备的功能。

  • 相关阅读:
    ZJOI2019二轮游记
    Luogu P5284 [十二省联考2019]字符串问题
    Luogu P5309 [Ynoi2012]D1T1
    Luogu P5292 [HNOI2019]校园旅行
    LOJ #6052. 「雅礼集训 2017 Day11」DIV
    Luogu P5279 [ZJOI2019]麻将
    LOJ #6060. 「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set
    Luogu P5283 [十二省联考2019]异或粽子
    Luogu P5290 [十二省联考2019]春节十二响
    Luogu P5285 [十二省联考2019]骗分过样例
  • 原文地址:https://www.cnblogs.com/chlyzone/p/1493348.html
Copyright © 2020-2023  润新知