Engines.Item 方法

获取 Engines 集合的一个索引成员。

命名空间:  EnvDTE80
程序集:  EnvDTE80(在 EnvDTE80.dll 中)

语法

声明
Function Item ( _
    index As Object _
) As Engine
Engine Item(
    Object index
)
Engine^ Item(
    [InAttribute] Object^ index
)
abstract Item : 
        index:Object -> Engine 
function Item(
    index : Object
) : Engine

参数

返回值

类型:EnvDTE80.Engine
Engine 对象。

备注

Index 的值可以是:

  • 一个表示引擎完整名称的前几个字母的 BSTR。

  • 一个表示引擎的 GUID 的 BSTR。

  • 一个基于 1 的整数值。

如果集合找不到对应于索引值的对象,则 Item 方法引发 ArgumentException 异常。

说明说明

当您使用 T-SQL 调试引擎记录某个宏并附加到调试进程时,该宏将返回对同一个引擎名的两个单独引用。例如,dbgeng(0) = transprt.Engines.Item("T-SQL") 和 dbgeng(1) = transprt.Engines.Item("T-SQL")。之所以出现这种情况,是因为 Visual Studio 中实际上有两个基础 T-SQL 调试引擎:一个适用于 SQL Server 2005 调试引擎,另一个适用于 SQL Server 2000 和 SQL Server 7 的 T-SQL 调试引擎。在通过 UI 附加到调试引擎进程时,将会自动引用这两个引擎,但是在自动化代码中,必须通过使用它们的唯一标识符 GUID 来引用它们。SQL Server 2005 的 GUID 是 {1202F5B4-3522-4149-BAD8-58B2079D704F},SQL Server 2000 和 SQL Server 7 中 T-SQL 调试引擎的 GUID 是 {5AF6F83C-B555-11D1-8418-00C04FA302A1}。因此,上述调用应当分别更改为 dbgeng(0) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}") 和 dbgeng(1) = trans.Engines.Item("{1202F5B4-3522-4149-BAD8-58B2079D704F}")。

示例

' Macro code.
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualBasic.ControlChars

Public Module Module1

    Sub ShowDefaultEngines()
        Dim dbg As EnvDTE80.Debugger2
        dbg = DTE.Debugger

        dbg.HexDisplayMode = True

        Dim transport As EnvDTE80.Transport
        transport = dbg.Transports.Item("default")

        Dim engine As EnvDTE80.Engine
        Dim strEngineList As String
        For Each engine In transport.Engines
            strEngineList = strEngineList + engine.Name + ", " + _
            engine.ID + ", " + engine.AttachResult.ToString + NewLine
        Next
        MsgBox(strEngineList)
    End Sub
End Module

.NET Framework 安全性

请参见

参考

Engines 接口

EnvDTE80 命名空间