调试是编写应用程序的一个主要部分。Visual Studio .NET为自带的调试器提供了大量的增强性能,包括统一的调试界面、Web service调试以及跨语言调试。这种调试器的一个最有用的新功能体现在对存储过程的调试性能上。本文我将介绍在VS.NET中对SQL Server 2000存储过程进行调试的几种可选方法,以及你可能会遇到的一些配置问题。
许多商家使用SQL Server作为数据库,并将存储过程作为将数据返回VB中的机制,因此对存储过程进行逐步调试的能力成为开发的关键。Visual Basic 6中提供了Transact-SQL (T-SQL)调试,它但需要许多步骤来完成对调试过程的配置。另外,这种调试器是一个单独的程序,而且也不象VB调试器那么功能完备。VB.NET提供了对存储过程的调试,虽然用于远程调试的设置还需要一些额外的工作,但这种调试器同你用在VB代码中使用的一样。除了VB.NET和SQL Server 2000以外,你还可以使用其他版本的VB和SQL Server来调试存储过程。然而在OS、VB和SQL Server中可能会存在很多种配置,而且它们每一种都有其自身的配置问题,因此这里我将着重对SQL Server 2000和VB.NET进行讲解。
所有必需的文件都要被放在合适的位置上以便对存储过程进行调试(在表1中可以看到一列包含调试方法及其位置的文件)。如果你的机器中装了SQL Server ,那么在这个机器中调试存储过程就应该不会出现什么配置问题。你必须保证服务器和客户端的配置都是正确的,以便对存储过程进行远程调试,而且你必须在服务器中安装调试组件以保证远程调试的正确运行。
你可以使用三种方法来设置调试组件:可以在服务器中安装VS.NET;可以运行VS.NET安装程序并选择Remote Components Setup,它只用于安装你需要进行调试的文件;或者你可以手动复制和记录那些必需的文件。如果你不选择在服务器中完全安装一个VS.NET,那么Remote Components Setup会以一个链接的形式出现在安装VS.NET的第一个显示画面中(请查阅资源以了解更多远程调试的设置问题)。
安装好远程调试组件之后,VS.NET会对MSSDI98.dll文件进行升级,但不会将它复制到SQL Server \binn 目录下,你需要手动进行复制。想要对T-SQL进行调试的用户还需要在服务器端的sp_sdidebug上设置EXECUTE权限。这是一个位于master 数据库中的一个扩展存储过程,在缺省状态下只有系统管理员有EXECUTE权限来访问这个存储过程。如果适当地设置这些权限,用户就能够在该服务器的任何数据库中对存储过程进行调试了。如果调试器在无误时中断或者在逐步调试时出现问题,则需要检查事务日志中的Application Errors。
用SQL Explorer进行调试
SQL Explorer是VS.NET的一部分,它用于连接和运用数据库。要直接从SQL Explorer中调试存储过程,首先你要和数据库建立数据连接。打开SQL Explorer并选中Data Connections来连接Northwind数据库。右击并选中Add Connection,在Data Link属性窗口中输入SQL Server的服务器名以及注册信息,并选中Northwind作为缺省数据库。
建立好数据库连接之后,你需要展开SQL Server并查找到Sales By Year存储过程。展开该存储过程后你会发现它使用了两个参数:@Beginning_Date和@Ending_Date。参数下方的四项是由该存储过程返回的列。
右击该存储过程并选中Step Into Stored Procedure选项,此时会出现一个Run Stored Procedure对话框,它会提示你输入两个日期,因为该过程是包含参数的 。这个画面的好处在于它会告诉你每个参数的数据类型,以及它是输入参数型还是输出型参数。输入1/1/96 和1/1/97两个值。
在存储过程第一行的左页边上会出现一个黄色的箭头,这就说明现在处于调试状态。从这一点来看,调试存储过程和调试VB代码是一样的。你可以使用标准的VB调试键来对代码进行逐步调试或者继续运行。和在VB代码中一样,你可以使用书签以及设置断点。
Locals窗口用于显示任何本地变量的值(在这里指@Beginning_Date和@Ending_Date)。你还可以在Command窗口中检查变量的值。通过选中Debug
关键词:在VB.NET中调试存储过程