在Visual studio中开发SQL Server CLR代码的好处在于,可以充分利用调试方面的工具。我们在开发普通的.net代码时,对采用Visual Studio中的调试器进行单步调试已经是轻车熟路;在编写SQL Server的CLR代码时,又如何使用Visual Studio进行调试呢 接下来本文将介绍三种调试的 *** 。
为了更好地进行SQL Server CLR代码的调试,您需要使用Visual Studio专业或团队版。下表列出了可以使用调试器的Visual Studio的版本及开发语言,如图1所示:
*** 2:使用测试脚本
另一种 *** 是创建一个测试脚本,然后调试测试脚本。测试脚本创建后,保存在解决方案中的“Test Scripts”文件夹。
以下是代码在Test1.sql脚本范例,我们将用以下指定的字符串数值作为参数来运行sortString函数。
select dbo.sortString('apple,pear,orange,banana,grape,kiwi')
|
设置好断点后,右击测试脚本,在弹出菜单中选择“Debug Script”即可开始调试。
需要注意的是:采用测试脚本进行测试时,必须要设置断点,否则调试器将不会停止,直到执行完所有的代码。这点与 *** 1不同。
在Visual Studio中开发SQL Server CLR代码的好处在于,可以充分利用调试方面的工具。我们在开发普通的.net代码时,对采用Visual Studio中的调试器进行单步调试已经是轻车熟路;在编写SQL Server的CLR代码时,又如何使用Visual Studio进行调试呢 接下来本文将介绍三种调试的 *** 。
为了更好地进行SQL Server CLR代码的调试,您需要使用Visual Studio专业或团队版。下表列出了可以使用调试器的Visual Studio的版本及开发语言,如图1所示:
图1:可使用调试器的Visual Studio的版本及开发语言
除了正确的Visual Studio版本和可支持的语言之外,还需要确保SQL Server中已经启用了“CLR集成”。可以在SQL Server外围应用配置器中进行设置。
需要特别注意的是:CLR调试时将导致其他所有线程停止,因此决不能在生产服务器尝试调试CLR。
一旦在Visual Studio的“服务器资源管理器”中的数据连接(如图2所示)设置了允许调试,那么在Visual Studio的“查看”菜单项中就多了项“服务器资源管理器”。
图2:服务器管理器中的数据连接启用CLR调试
当选择了“允许SQL/CLR调试”时,会看到如下所示的消息提示窗口:
图3:启用CLR调试时的消息提示窗口
一旦SQL Server中启用了CLR,并且连接项中启用了调试后,就可以开始调试过程。调试CLR代码的 *** 有三种:
1.使用服务器资源管理器,单步执行SQL Server 2005数据库对象;
2.使用Visual Studio 2005中的SQL Server项目,运行其中的测试脚本;
3.运行一个应用程序来调用存储过程。
*** 1:单步执行一个对象
假如CLR代码已经部署到SQL Server上,我们就可以浏览CLR函数或存储过程,右键点击要调试的对象,在弹出菜单中选择“单步执行函数”或“单步执行存储过程”,如图4所示:
图4:单步执行函数
此操作将执行该函数或存储过程,将弹出一个窗口,我们可以输入参数的值,如图5所示:
图5:指定函数输入参数
指定完输入值,按“OK”按键后,就开始了调试过程。首先它将停在函数代码的起始位置,不论我们是否使用断点,如图6所示:
图6:调试停在函数开始位置
这时可以使用如图7所示的调试控制工具栏的功能按钮,逐行单步执行代码。
图7:调试控制工具栏
在本地窗口我们可以看到变量值变化的情况,如图8所示。此外,我们还可以利用其他调试功能。
图8:本地窗口中可以看到变量值变化情况
*** 2:使用测试脚本
另一种 *** 是创建一个测试脚本,然后调试测试脚本。测试脚本创建后,保存在解决方案中的“Test Scripts”文件夹。
以下是代码在Test1.sql脚本范例,我们将用以下指定的字符串数值作为参数来运行sortString函数。
select dbo.sortString('apple,pear,orange,banana,grape,kiwi')
|
设置好断点后,右击测试脚本,在弹出菜单中选择“Debug Script”即可开始调试。
需要注意的是:采用测试脚本进行测试时,必须要设置断点,否则调试器将不会停止,直到执行完所有的代码。这点与 *** 1不同。
图9:测试脚本的弹出式菜单
一旦调试过程开始,将停止在之一个断点,如图10所示。
图10:使用测试脚本来调试CLR代码
这时,我们可以逐行单步执行每一步骤的代码行,看到数值变化的情况。
*** 3:使用一个应用程序进行测试
在这个 *** 中,采用Visual Studio来调试应用程序。该程序作为测试驱动,假如应用程序调用SQL Server的CLR代码并且CLR代码中设置了断点,我们就可以调试该代码了。
小结
该篇讲述了在Visual Studio 中调试CLR代码的三种 *** 。
对于CLR触发器,可以创建测试脚本,当测试脚本对表进行增、删改的操作时,一旦程序运行到触发器代码的断点位置,程序就可以停下调试了。另一种方式这样做是要调试存储过程来触发CLR触发器代码。
很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...
在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...
假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...
故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...
经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...
Windows 7/8系统: 控制面板——自动播放——取消掉为所有媒体和设备设置自动播放 winXP系统: 开始—运行—gpedit.msc—计算机配置—管理模板—系统—关闭自动播放—已启用—所有驱动器—确定 关闭自动运行功能说明: 一旦您将媒体插入驱动器...