SQLServer2005MobileEdition联机丛书使用SQLServerMobile创建移动应用程序发送反馈请参阅全部折叠全部展开SQLServerMobile教程在此演练中,您将学习如何在使用SQLServer2005MobileEdition(SQLServerMobile)的VisualStudio2005中创建应用程序。SQLServerMobile数据库将作为SQLServer2005发布的订阅服务器,并使用合并复制来交换信息。在此演练中,您将执行下列任务:1.配置SQLServer2005发布2.配置Internet信息服务(IIS)以进行复制3.创建SQLServerMobile订阅4.创建应用程序5.部署应用程序并测试订阅必备项若要按照此演练中所写的内容执行此演练,您需要满足下列条件:安装有WindowsXP和IIS的计算机VisualStudio2005SQLServer2005,与VisualStudio安装在同一台计算机上SQLServer2005任务在创建应用程序之前,必须在SQLServer2005中配置发布。在下列步骤中,您将创建一个示例数据库,然后从该数据库发布数据。您将使用预建的脚本文件创建数据库,然后使用新建发布向导创建发布。创建数据库并在其中填充数据1.打开SQLServerManagementStudio。2.当提示您连接服务器时,请在“服务器名称”中键入(local),然后单击“连接”。3.打开一个新查询窗口。创建一个SQLMobile数据库,并在该数据库中填充数据。复制代码USEmaster;GODROPDatabaseSQLMobile;GOCREATEDATABASESQLMobile;GOUSESQLMobile;GOCREATETABLEMembershipData(MemberIDINTEGERIDENTITY(1,1)CONSTRAINTpkMemberIDPRIMARYKEY,MemberNameNVarChar(50));CREATETABLEFlightData(MemberIDINTEGERFOREIGNKEYREFERENCESMembershipData(MemberID),DestinationNVarChar(50),FlightStatusNVarChar(50),ArrivalDateDATETIME,FlownMilesINTEGER);INSERTINTOMembershipData(MemberName)VALUES('MrDonHall');INSERTINTOMembershipData(MemberName)VALUES('MrJonMorris');INSERTINTOMembershipData(MemberName)VALUES('MsTiAnnaJones');INSERTINTOFlightData(MemberID,Destination,FlightStatus,ArrivalDate,FlownMiles)VALUES(1,'Seattle','FlightDelayed1hour','8/25/00','20000');INSERTINTOFlightData(MemberID,Destination,FlightStatus,ArrivalDate,FlownMiles)VALUES(2,'London','Flightontime','9/12/00','15000');INSERTINTOFlightData(MemberID,Destination,FlightStatus,ArrivalDate,FlownMiles)VALUES(3,'Sydney','FlightGateClosing','11/5/00','30000');INSERTINTOFlightData(MemberID,Destination,FlightStatus,ArrivalDate,FlownMiles)VALUES(1,'Tokyo','DelayedFog','5/25/00','25000');INSERTINTOFlightData(MemberID,Destination,FlightStatus,ArrivalDate,FlownMiles)VALUES(2,'Minneapolis','Flightontime','5/1/00','1000');INSERTINTOFlightData(MemberID,Destination,FlightStatus,ArrivalDate,FlownMiles)VALUES(3,'Memphis','FlightGateClosing','1/5/00','1000');4.单击“执行(!)”运行该脚本并创建数据库。注意:您还可以按F5,或者从“查询”菜单中选择“执行”来运行该查询。此时,将运行该脚本,创建一个名为SQLMobile的新数据库。准备服务器以发布数据在创建发布之前,必须创建快照代理用户帐户,并创建一个将在其中存储快照文件的共享文件夹,准备服务器以进行发布。创建快照文件夹之后,该文件夹将用于服务器上的所有发布。如果以前已在此服务器上创建了发布,您可以跳过这些步骤。创建快照用户帐户1.在“开始”菜单上,右键单击“我的电脑”,然后选择“管理”。2.在“计算机管理”中,展开“系统工具”,展开“本地用户和组”,右键单击“用户”,然后选择“新用户”。3.在“新用户”对话框中,键入以下信息,然后单击“创建”:字段值用户名snapshot_agent密码p@ssw0rd确认密码p@ssw0rd用户下次登录时须更改密码未选中密码永不过期选中重要事项:这些设置仅用于测试。在生产环境中,请确保用户帐户设置符合您的网络安全性要求。许多情况下,对于快照代理您将使用域用户帐户而不是使用本地用户帐户。1.单击“关闭”关闭“新用户”对话框,然后关闭“计算机管理”控制台。创建快照文件夹1.在Windows资源管理器中,创建一个名为“snapshot”的新文件夹。在此演练中,您可以在驱动器C的根目录下创建该文件夹:c:\snapshot。右键单击“快照”文件夹,选择“共享和安全”。2.在“共享”选项卡上,选择“共享该文件夹”,然后单击“权限”。3.在“快照的权限”中,单击“添加”。4.在“输入要选择的对象名称”中,键入computername\snapshot_agent(其中computername是您本地计算机的名称),然后单击“确定”。5.在“快照的权限”中,选择“snapshot_agent”,分配“更改”和“读取”共享权限,然后单击“确定”。6.选择“安全”选项卡。7.单击“添加”。8.在“输入要选择的对象名称”中,键入computername\snapshot_agent(其中computername是您本地计算机的名称),然后单击“确定”。9.选择“snapshot_agent”,然后将“写入”权限添加到允许的权限列表中。现在,snapshot_agent帐户将被授予下列权限:读取和运行列出文件夹目录读取写入10.单击“确定”关闭“快照属性”窗口。11.关闭Windows资源管理器。创建发布1.在对象资源管理器中,展开“(本地)”节点(如果当前尚未展开),然后展开“复制”。2.右键单击“发布”文件夹,然后选择“新建发布”。3.在新建发布向导简介屏幕上,单击“下一步”。4.如果以前未曾在此计算机上创建发布,将提示您配置分发服务器。选择第一个选项将本地计算机作为它自己的分发服务器,然后单击“下一步”。5.如果以前未曾在此计算机上创建发布,将提示您指定快照文件夹。键入在前面过程中创建的快照文件夹的共享路径。以\\servername\share格式键入共享路径,不要键入本地路径。在此演练中,我们建议您键入\\computer\snapshot(其中computer是您计算机的名称),然后单击“下一步”。6.在数据库列表中,选择“SQLMobile”,然后单击“下一步”。7.在发布类型列表中,选择“合并发布”,然后单击“下一步”。8.在“订阅服务器类型”页中,选择“是”启用对SQLServerMobile订阅服务器的支持,然后单击“下一步”。9.在要发布的对象列表中,选中“表”复选框。如果展开“表”,您将发现SQLMobile数据库中的两个表都已被选中。单击“下一步”。10.会通知您将向表中添加唯一标识符。所有合并项目都需要一个uniqueindentifier列。单击“下一步”。11.在“筛选表行”页中,现在即可添加对已发布数据的筛选器。对于此演练,您将无需筛选数据。单击“下一步”。12.在“快照代理”页中,您可以配置创建快照的时间以及快照代理运行的频率。单击“下一步”以接受默认设置。13.在“代理安全性”对话框中,单击“安全设置”。a.在“快照代理安全性”对话框中,输入前面过程中所创建帐户的登录信息。进程帐户为computer_name\snapshot_agent(其中computer_name是您计算机的名称),密码为p@ssw0rd。b.单击“确定”以保存设置。c.在“代理安全性”页中,单击“下一步”。14.在“向导操作”屏幕上,您可以确定创建发布的时间以及是否希望创建脚本文件。单击“下一步”以接受默认选择。15.在“完成该向导”屏幕上,键入SQLMobile作为发布的名称,然后单击“完成”。16.将创建发布。向导完成后,单击“关闭”。保护发布1.在对象资源管理器中,展开“安全性”,右键单击“登录”,然后选择“新建登录”。2.在“新建登录”对话框中,选择“Windows身份验证”,键入computername\iusr_computername(其中computername是您计算机的名称)。3.在导航窗格中,选择“数据库访问”窗格。4.在数据库列表中,选择“SQLMobile”,然后单击“确定”。5.在对象资源管理器中,展开“复制”,展开“发布”,右键单击“SQLMobile:SQLMobile”发布,然后选择“属性”。6.在导航窗格中,选择“发布访问列表”。7.单击“添加”。在“添加发布访问项”对话框中,列出了IUSR帐户。选择该帐户,然后单击“确定”。8.请确保IUSR帐户当前位于PAL中,然后单击“确定”。配置IIS和SQLServer2005以进行Web同步既然SQLServer已经配置了发布,您必须使该发布可以被SQLServerMobile客户端通过网络进行访问。SQLServerMobile通过IIS连接到SQLServer。特别是,您可以创建并配置一个虚拟目录,以允许客户端访问SQLServerMobile服务器代理。安装SQLServerMobile服务器组件1.在Windows资源管理器中,导航到以下目录:C:\ProgramFiles\MicrosoftSQLServer\90\Tools\Binn\VSShell\Common7\IDE2.双击sqlce30setupen.msi运行安装程序。3.在“安装”向导的简介屏幕上,单击“下一步”。4.阅读并接受EULA条款,然后单击“下一步”。5.在“系统配置检查”屏幕上,确保所有项都通过检查。如果尚未安装SQLServer2000,将列出该列表的最后一项作为警告。因为您正在使用SQLServer2005,这并不是问题。单击“下一步”。6.在接下来的屏幕上,单击“下一步”,然后单击“安装”开始安装。7.单击“Finish”。配置发布以进行Web同步1.在SQLServerManagementStudio的对象资源管理器中,展开“(本地)”计算机节点。2.右键单击“复制”文件夹,然后选择“配置Web同步”。3.在该向导的简介屏幕上,单击“下一步”。4.在“订阅服务器类型”屏幕上,选择“SQLServerMobileEdition”,然后单击“下一步”。5.在“Web服务器”屏幕的