Chinaunix首页 | 论坛 | 博客

MAT

  • 博客访问: 5775
  • 博文数量: 3
  • 博客积分: 120
  • 博客等级: 入伍新兵
  • 技术积分: 25
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-18 10:26
文章分类

全部博文(3)

文章存档

2010年(2)

2009年(1)

我的朋友
最近访客

分类: WINDOWS

2010-06-02 11:27:59

T-SQL 调试器

T-SQL 调试器是与数据环境设计器集成在一起的。它允许您在 Visual Basic 开发环境中,交互地调试用 Microsoft SQL Server 的Transact SQL 特有语言写成的远程存储过程。使用 T-SQL 触发器,可以:

  • 显示 SQL 调用堆栈、局部变量、以及 SQL 存储过程的参数。

  • 控制和管理断点。

  • 查看和修改局部变量和参数。

  • 查看全局变量。

安装和兼容性

为了使用 T-SQL 调试器,必须安装 SQL Server 6.5 版的Service Pack 3 或更高版本作为您的数据库服务器。调试器使用由 SQL Server 的Sdi.dll 显露的功能,并且通过远程自动化显露出哪种功能。

如果您在安装 Visual Basic 时选择安装全部的企业版工具,则 T-SQL 调试器的客户端组件就正确地被安装和配置。如果有必要重复安装过程,则在 CD 的“安装”对话框中选择“自定义”,并且在选择企业版工具时选中“全选”。

服务器端安装

安装了 SQL Server 6.5 版 Service Pack 3 或更高版本之后,就可以在服务器上安装和注册 SQL 调试器接口和远端自动化部件了。这些部件位于 \Program files\Common Files\Microsoft Shared\SQL Debugging 目录下。在 Windows NT 4.0 环境下,仅需简单地运行安装程序 Sdi_nt4.exe 即可。

注意 为了在 NT Server 3.51 上安装,必须手工复制和注册所必须的文件。这个过程的完整指令包括在 Readme.txt 文件中,该文件位于 \Program Files\Common Files\Microsoft Shared\SQL Debugging 文件夹。

使用 T-SQL 调试器

可以使用不同的方法调用 T-SQL 调试。

  1. 要在设计时调试一个存储过程或者批查询,要通过位于 Visual Basic 中的“外接程序”菜单中的“外接程序管理器...”,添加 T-SQL 调试器外接程序。然后,可以“外接程序”菜单中单击“T-SQL 调试器”来启动该外接程序。然后简单地选择一个 DSN ,并且选择“存储过程”或者是“批 SQL”最后单击“执行”按钮。这样就调出了调试器,并且允许您对所感兴趣的SQL 进行调试。

  2. 要在调试 Visual Basic 代码(运行时调试)时调试一个存储过程,可以在 Visual Basic 的“工具”菜单中选择“T-SQL 调试选项”。该选项对话框允许以下操作:
    • 打开“自动跟踪存储过程”,使得您无论在何时跟踪一个执行存储过程的ADO 或者 RDO方法,都调出 T-SQL 调试器。

    • 打开“安全模式”,将自动回卷所调试的任何设计时查询。

    • 在调试设计时查询时,限制出现在 T-SQL 调试器的输出窗口中的行数。

    • 设置登录超时值,调试器使用该值来连接数据库,以获得内部 SQL 状态。

    一旦已经选择了“自动跟踪存储过程”复选框,如果单步运行 (F8) 到某一行代码,并且该行代码执行一个调用存储过程的ADO 或者 RDO方法,那么将自动启动调试器。然后,您就可以单步执行存储过程,然后继续对您的Visual Basic 代码进行调试了。

    注意 如果在存储过程执行完成之前,已经返回了足够的数据来填满其缓冲区,那么 SQL Server 将从该存储过程返回。如果发生了这种情况,T-SQL 调试器和Visual Basic 调试器将同时被激活。Visual Basic 代码必须在存储过程完成执行之前从 ADO 或者 RDO 取回结果。如果发生了这种情况,请确定您的代码通过使 Visual Basic 处于 Run 模式 (F5) 下以及在希望停止执行处设置断点来读取结果集。使用任务栏或 ALT+TAB 组合键,可以在 Visual Basic和T-SQL 调试器之间进行切换。

  3. 您还可以在下列情况下启动 T-SQL 调试器:
    • 从数据环境设计器

    • 在单步执行 ADO 或者 RDO 代码时

    • 在“数据视图”窗口中的一个存储过程上单击右键,并且选择“调试”命令

    • 从用户连接设计器

一旦已经启动了调试器,它将建立 ODBC 连接并且显示“输入未赋值的参数”对话框,如下图所示。

“Unassigned Parameters”对话框

在 Value 字段中为任何未赋值的参数输入数值,然后单击“确定”。T-SQL 调试器界面出现并且显示存储过程的文本。

T-SQL 调试器界面

调试选项

在显示 SQL 语句的同时,在工具栏按钮和“调试”菜单中还有多个可用的调试选项。这些选项包括:

  • “到”

  • “设置和清除断点”

  • “步骤”

  • “跟踪子表达式”

  • “跳过子表达式”

  • “运行到光标处”

  • “停止调试”

  • “重新启动”

视图和选项

除了包含正在调试的SQL 语句的代码窗口之外,T-SQL 调试器界面还为局部和全局变量以及查询输出(结果集)显示分开的输出窗口。“视图”菜单也允许打开一个分开的“调用堆栈”窗口和一个“转储临时表”窗口,使得您可以在代码执行时对它们进行检查。

“选项...”菜单使您可以通过改变用于显示的字体和颜色来自定义 T-SQL 调试器的外观。

从 T-SQL 调试器中退出

调试会话完成之后,在“文件”菜单中单击“退出”关闭调试器。要再次执行一个查询,在“调试”菜单中单击“重新启动”。

疑难解答

如果不能使 T-SQL 调试正常工作,则需要检查服务器的事件日志。SDI.DLL 将在事件查看器的应用程序部分中记录事件。COM 或者分布式 COM 错误将在查看器的系统部分中记录事件。

  • 应该确保两台计算机可以相互通信。如果您正在运行 TCP/IP,达到这个目的最简单的方法就是,在服务器命令提示状态下键入 ping和客户端的计算机名。如果该操作失败,则需要解决计算机间的连接问题。

  • 应该确保文件 SDI.DLL 驻留在与 SQLSERVR.EXE 相同的目录下。这个目录应该是在 SQL Server 主目录下的binn 子目录。缺省值是 c:\mssql\binn。

  • 确定在服务器计算机上启动了 RPC 服务。要实现它,请启动“控制面板”,打开“服务器”应用程序,核查远程过程调用 (RPC) 服务程序和远程过程调用 (RPC) 定位程序正在运行,并且被设置为自动启动。

  • 确认 SQL Server 没有被设置成作为 SystemAccount 登录。要实现它,请启动“控制面板”,打开“服务器”应用程序,并且双击“MSSQLServer 服务”。如果该服务被设置成作为 SystemAccount 来运行,将其改变,以便该服务器能登录到一个特定的帐号,而该帐号对您所在的域是有效的。如果调试仍然失败,那么请确认 SQL Server 的启动帐号是否具有足够的权限来启动客户计算机上的自动化服务器。

  • 如果在事件日志中发现 COM 错误 80080005 ,请确认没有从命令提示状态启动远程自动化 (autmgr32)。Autmgr32.exe 只能运行于以 SQL Server 的帐户注册的工作站上。任何其它工作站都会引起问题。如果是这个原因,请使用任务管理器关闭 autmgr32.exe,并且让 sdi.dll和autprx32.dll 通过 COM 加载 autmgr32。

  • 如果客户端和服务器端都没有安装并加载分布式 COM (DCOM),那么要确认远程自动化是否成功地在服务器和客户计算机上安装。

  • 如果客户端系统正运行于 Windows NT 4.0 或者更高版本,运行 DCOMCNFG 并且确保每一个用户都有启动和访问 vbsdicli.exe 的权限。
阅读(953) | 评论(0) | 转发(0) |
0

上一篇:关于.net 调试的各种解决方法

下一篇:没有了

给主人留下些什么吧!~~