扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:microsoft.com 来源:天新网 2008年4月25日
关键字: 数据库 SQL Mssql SQL Server
部署和调试 GetProximity:
部署使用 Web 服务的表值函数比前一示例要更为复杂。部署使用 Web 服务的表值函数的全部步骤如下:
1.将包含 GetProximity 函数的项目配置为预先生成 XML
2.将 System.Security.AllowPartiallyTrustedCallers 属性添加到该程序集中。此操作可通过在该项目的 AssemblyInfo.cs 中添加以下行来完成:
[assembly: System.Security.AllowPartiallyTrustedCallers]
这样,XML 序列化程序集就可以和包含 GetProximity 函数的主程序集通信。
3.向 SQL Server 注册在步骤 1 中创建的 XML 序列化 DLL。SAFE 权限集就足够了。
4.为包含 GetProximity 表值函数的 DLL 创建一个非对称密钥。
5.为该非对称密钥创建登录信息,并授予它 EXTERNAL Access 权限集。
6.使用 EXTERNAL ACCESS 权限集注册包含 GetProximity 的程序集。
7.注册表值函数 GetProximity。
由于这个依赖关系链相对而言更为冗长和复杂,所以我放弃了 Visual Studio 的部署机制,而选择了作为生成后步骤运行的 Transact-SQL 脚本,它执行部署步骤 3-7。示例项目中包含了该脚本。调试表值函数非常简单。数据库项目有一个 Test Scripts 目录。您可以将脚本添加到该目录中并直接从 Visual Studio 运行它们。成功部署了该函数后,您可以创建一个调用该函数的 Transact-SQL 查询,并在不离开 Visual Studio 的情况下执行完该函数的 C# 代码。若要测试 GetProximity,请在 Test Scripts 目录中创建一个名为“Test.sql”的测试脚本,并在该文件中添加以下查询:
SELECT * FROM GetProximity('Redmond', 'WA', 5, 'SIC3578')
请注意函数的参数。我将我的临近区查询集中在华盛顿州的雷蒙德市,因此我将 “Redmond”用于 @city 参数,将“WA”用于 @state 参数。我为 @count 值提供了数字 5,这是我希望返回的实体数。我还为 @entityTypeName 参数提供了值“SIC3578”,这是我使用的 MapPoint 数据源中的 ATM 的实体名。有关 MapPoint 数据源和实体类型的详细信息,请参阅 MapPoint 数据源。若要在 Visual Studio 中运行该查询,请右键单击解决方案资源管理器中的 Test.sql 文件并选择“调试脚本”。您将在 Visual Studio 输出窗口中得到与以下内容类似的结果:
|
使用 MapPoint Web 服务创建报表:
创建我们的报表的第一步是在 Visual Studio 中创建一个新的 Report Server 项目,并指定数据源。我的报表的数据源是 SQL Server 2005 AdventureWorks 示例数据库,其中有我以前创建的 MapPoint 表值函数。有一个用于该报表的数据集。它包含零售店名、零售店所在的城市、州、ATM 名、ATM 地址和 ATM 路线图等字段。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者