使用 SQL 适配器浏览、搜索和获取 SQL 操作的元数据

本部分介绍如何使用适配器服务 BizTalk 项目外接程序、添加适配器元数据向导和添加适配器服务参考 Visual Studio 插件。 使用这些 Visual Studio 组件,可以:

  • 浏览要检索元数据的操作。

  • 搜索要检索元数据的操作。

  • 使用使用适配器服务外接程序时,将所选操作的消息架构和端口绑定配置文件添加到BizTalk Server项目。

  • 使用添加适配器服务引用插件时,将 WCF 客户端类或 WCF 服务协定 (接口) 添加到非 BizTalk 编程项目,以及配置文件 (app.config) 。

注意

使用适配器服务外接程序、添加适配器元数据向导和添加适配器服务引用插件在浏览和搜索操作时呈现的界面基本相同,因此所有三个组件都涵盖在同一主题中。

必备条件

必须先连接到 SQL Server,然后才能浏览、搜索或检索目标操作的元数据。 若要了解如何在使用适配器服务加载项、添加适配器元数据向导或添加适配器服务引用插件时连接到 SQL Server,请参阅使用使用适配器服务外接程序连接到 Visual Studio 中的 SQL Server

浏览操作

可以使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务参考”插件浏览可在使用 SQL 适配器SQL Server执行的出站和入站操作。

出站操作

SQL 适配器使客户端能够执行以下出站操作。

  • 对表和视图执行插入、选择、更新和删除操作。

  • 对表和视图设置<column_name> 操作。 此操作对包含 varchar (max) 、nvarchar (max) 或 varbinary (max) 列的表公开。 此类操作支持大型对象的流式处理。

  • 存储过程,包括弱类型化和强类型化为操作。

  • 标量和表值函数作为操作。

    适配器还会在根级别公开常规出站操作,例如 ExecuteReaderExecuteScalarExecuteNonQuery

入站操作

SQL 适配器使客户端能够执行以下入站操作。

  • 用于从SQL Server接收基于轮询的数据更改消息的轮询操作。 为此操作收到的消息不是强类型。

  • TypedPolling 操作,用于从SQL Server接收基于轮询的数据更改消息。 为此操作收到的消息是强类型。

  • 用于从SQL Server接收查询通知的通知操作。

注意

适配器还支持 XmlPolling 入站操作,以使用 SELECT 语句和包含 FOR XML 子句的存储过程对SQL Server数据库启用轮询。 但是,适配器不会为此公开特定的入站操作。 有关 XmlPolling 的详细信息,请参阅使用 SELECT 语句和 FOR XML 子句从 SQL 使用 BizTalk Server 接收轮询消息

有关这些操作的详细信息,请参阅 使用适配器连接到 SAP 系统

注意

通过使用“使用适配器服务加载项”或“添加适配器服务引用”插件,可以使用 Windows 界面浏览类别和操作节点。

有关浏览元数据的详细信息,请参阅使用 SQL 适配器在 Visual Studio 中获取SQL Server操作的元数据

浏览SQL Server上的出站操作
  1. 使用使用适配器服务加载项、添加适配器元数据向导或添加适配器服务引用插件连接到SQL Server。 有关说明,请参阅使用适配器服务外接程序在 Visual Studio 中连接到SQL Server

  2. “选择协定类型” 列表中,为出站操作选择 “客户端 (出站操作”)

  3. 选择类别”框列出了连接到的SQL Server数据库中可用的项目。 单击某个项目,在“ 可用类别和 操作”框中查看可用于该项目的操作。

    提示

    可以通过键入项目的名称直接转到树中的“直接”类别节点或子类别节点,而焦点位于 “选择类别 ”框中的树视图中。 例如,若要跳转到 “员工 表”节点,请将焦点放在“ 表” 节点上,然后键入 Employee

    下图显示了使用适配器服务加载项。 选择 (/) 根节点,“ 可用类别和操作 ”框中列出了根节点下可用的常规类别节点。

    3eef7b99-da8e-4b98-8b14-8e48fd7b3801根级别

    注意

    标准SQL Server操作(如 ExecuteReader、ExecuteScalar 和 ExecuteNonQuery)也可用于根级别。 有关这些操作的详细信息,请参阅 支持 ExecuteNonQuery、ExecuteReader 和 ExecuteScalar Operations

  4. 若要查看 SQL Server 数据库中可用的过程,请单击“过程”节点。 在下图中,“选择类别”框中选择了“过程”节点,相应的过程列在“可用类别和操作”框中

    浏览 SQL Server 中的过程

    注意

    过程” 节点下列出的同一组过程也可在 “强类型过程” 节点下使用。 区别在于架构的生成方式。 对于“ 过程 ”节点下的过程,架构是弱类型化。 但是,对于“ 强类型过程 ”节点下的过程,架构是强类型化。 如果要使用 BizTalk 映射器将一个操作的架构映射到另一个操作,强类型架构非常有用,因为该架构在设计时可用于创建 BizTalk 项目。 对于弱类型过程,该过程的架构在运行时作为响应消息的一部分接收。

  5. 若要查看SQL Server数据库中的表,请单击“”节点。 或者,展开“ 表” 节点。

  6. 若要查看表上支持的操作,请单击表名称。

    下图显示了 “选择类别 ”框中的表列表。 “ 可用类别和操作 ”框列出了所选表支持的操作。

    浏览SQL Server数据库中的表

    注意

    如果SQL Server表包含 varchar (max) 、nvarchar (max) 和 varbinary (max) 类型的列,则适配器还会公开用于更新该列中数据的特定操作。 此操作的名称为 Set<column_name>。 例如,如果表的列“Job_Description”类型为 varchar (MAX) ,则操作的名称为“SetJob_Description”。

  7. 若要查看SQL Server数据库中的视图,请单击“视图”节点。 或者,展开“ 视图” 节点。

  8. 若要查看视图上支持的操作,请单击视图名称。

    下图显示了 “选择类别 ”框中的视图列表。 “ 可用类别和操作 ”框列出了所选视图支持的操作。

    浏览SQL Server数据库中的视图

    注意

    如果视图包含 varchar (max) 、nvarchar (max) 和 varbinary (max) 类型的列,则适配器还会公开用于更新该列中数据的特定操作。 此操作的名称为 Set<column_name>。 例如,如果表的列“Job_Description”类型为 varchar (max) ,则操作的名称为“SetJob_Description”。

  9. 若要在“可用类别和操作”框中查看SQL Server数据库中定义的标量函数列表,请单击“标量函数”节点。

    在下图中,“选择类别”框中选择了“标量函数”节点,相应的函数列在“可用类别和操作”框中。

    78b9f720-2cb2-44a8-b8cc-49e4fb608a1f浏览 SQL Server

  10. 若要在“可用的类别和操作”框中查看SQL Server数据库中定义的表值函数列表,请单击“表值函数”节点。

    在下图中,“选择类别”框中选择了“表值函数”节点,相应的函数列在“可用类别和操作”框中。

    b007059f-280e-40d7-9553-eca4216296f4浏览 SQL Server

浏览SQL Server上的入站操作
  1. 使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用”插件连接到 SQL Server。 有关说明,请参阅使用适配器服务外接程序在 Visual Studio 中连接到SQL Server

  2. “选择协定类型” 列表中,对于入站操作,选择“ 服务 (入站操作”)

  3. SQL 适配器支持的所有入站操作在根节点上可用。 单击 /) (根节点以查看可用的入站操作。

    133732c0-ca8f-4e57-8a70-ba4fb561a37b适配器

搜索操作

可以使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用”插件来搜索SQL Server数据库中的特定项目。 搜索SQL Server元数据时,SQL 适配器:

  • 支持搜索表达式中的通配符和转义字符。

  • 立即启用执行搜索操作的节点下的搜索。 例如,若要搜索表,必须在 \Table 下进行搜索。 不支持多级搜索。

    下表列出了可用于通过 SQL 适配器搜索项目及其解释的特殊字符。

特殊字符 解释 示例
_(下划线) 完全匹配一个字符 “A_”匹配 AB、AC、AD。
% 与零个或多个字符匹配 “A%”与 A、AB、AC 匹配。
[ ] - 转义 % 和 _ 的特殊含义
- 指定要存在的一个范围或一组字符
- %[%]% 匹配包含 % 符号的所有名称。
- [a-f] 匹配 (和包括) “a”和“f”之间的字符的所有名称。
- [abc] 匹配包含字符“a”、“b”和“c”的所有名称。
[^] 指定不存在的范围或字符集 - [^a-f] 匹配 (和包括“a”和“f”) 之间没有字符的所有名称。
- [^abc] 匹配所有没有字符“a”、“b”和“c”的名称。

注意

转义字符是放在通配符前面的字符,以指示通配符应解释为常规字符,而不是通配符。

有关详细信息,请参阅使用 SQL 适配器在 Visual Studio 中获取SQL Server操作的元数据

若要使用适配器服务加载项在SQL Server中搜索元数据,请执行以下步骤。

在 SQL Server 中搜索元数据

  1. 使用“使用适配器服务加载项”、“添加适配器元数据向导”或“添加适配器服务引用”插件连接到 SQL Server。 有关说明,请参阅使用适配器服务外接程序在 Visual Studio 中连接到SQL Server

  2. “选择协定类型” 列表中,根据是搜索入站操作还是出站操作来选择协定类型。

  3. “选择类别 ”框中,单击要搜索特定项目的类别节点。 例如,若要搜索表,请单击“ ”节点。

  4. “在类别中搜索 ”框中,键入搜索表达式以搜索特定项目。 例如,若要搜索名称中具有“Customer”的表,请键入 %Customer%

    注意

    搜索字符串区分大小写。

  5. 若要开始搜索,请单击带有向右箭头图标的按钮。 搜索完成后, “可用类别和操作 ”框将列出满足搜索条件的项目。

    下图显示了名称中包含“Customer”的SQL Server表。

    62c24ed3-f4e5-47de-8e8d-35af96e6c5ec在 SQL Server

为 BizTalk 项目生成架构

可以使用“使用适配器服务加载项”或“添加适配器元数据向导”为所选SQL Server项目生成架构。 浏览并搜索要调用的项目后,可以为这些项目生成架构,并发送符合架构的消息以SQL Server。

注意

可以选择类别节点以返回该类别的子树中的所有操作,例如,可以选择整个表 (为表) 中的所有操作生成架构,或者针对表 (“插入”和“删除”) 为表上的这些操作生成架构。 有关节点的详细信息,请参阅 元数据节点 ID

为SQL Server项目生成架构

  1. 使用“使用适配器服务加载项”或“添加适配器元数据向导”连接到SQL Server。 有关说明,请参阅使用适配器服务外接程序在 Visual Studio 中连接到SQL Server

    重要

    若要使用 BizTalk Server生成用于执行操作的架构,必须将 EnableBizTalkCompatibilityMode 绑定属性设置为 True。 在与 SQL Server 数据库建立连接时,必须设置此绑定属性。

  2. “选择协定类型” 列表中,根据是要为入站操作还是出站操作生成架构,选择协定类型。

  3. 单击要为其生成元数据的类别节点。 例如,如果要为表生成元数据,请单击“ ”。

  4. 展开类别节点,然后选择该节点中要为其生成元数据的特定项。 例如,若要为“CustomerTable”表上的操作生成元数据,请展开“ ”节点,然后单击“ CustomerTable”。

  5. “可用类别和操作”框中,选择要对SQL Server执行的操作,然后单击“添加”。 所选操作在 “已添加的类别和操作 ”框中列出。 例如,若要对“CustomerTable”表执行“插入”和“选择”操作,请单击操作名称,然后单击“ 添加”。

    下图显示了“使用适配器服务加载项”,其中列出了所选操作。

    从 SQL Server 检索元数据

    如果要为多个操作生成架构,这些架构中可能存在一些重复的元素定义,这可能会导致编译 BizTalk 项目失败。 例如,请考虑为操作“Op1”生成架构的方案。 “Op1”的架构包含数据类型为“CT1”的参数。 生成“Op1”的架构后,关闭“使用适配器服务加载项”,然后重新打开它,为另一个操作“Op2”生成架构。 假设“Op2”还包含数据类型为“CT1”的参数。 退出“使用适配器服务加载项”并编译项目后,将收到编译错误,因为复杂数据类型“CT1”在不同的 XSD 文件中定义两次。 在这种情况下,建议执行以下操作:

    • 为单次运行“使用适配器服务加载项”中的所有操作生成架构。 这可确保使用适配器服务加载项仅为复杂数据类型“CT1”生成一个定义。

    • 如果要为使用适配器服务外接程序的不同运行中的多个操作生成架构,请确保选中“检查生成唯一架构类型”框,以便生成的 XSD 文件包含复杂数据类型“CT1”的唯一命名空间。

  6. 单击 “确定” 。 架构文件以 .xsd 扩展名保存在 BizTalk 项目所在的同一位置。

    注意

    如果使用“使用适配器服务加载项”为SQL Server项目生成元数据,则默认情况下会使用特定命名约定创建文件。 生成的 WSDL 包含 fileNameHint 注释标记,其中包含应分配给 XSD 文件的名称。 例如,表操作的架构文件的文件名提示遵循约定 TableOperation。<架构>。<tablename>。 如果要自定义生成的 XSD 文件的名称,可以在 “文件名前缀” 框中提供前缀。 最后,XSD 文件的名称将作为文件名前缀 + fileNameHint + 唯一整数 ((如果需要)到达,以确保文件名) 唯一。

    注意

    使用适配器服务加载项还会创建一个绑定文件 (XML 文件) 包含你在为操作生成架构时指定的绑定属性,以及用于调用操作的 SOAP 操作。 可以在 BizTalk Server 管理控制台中导入此绑定文件,以使用连接 URI、绑定属性和 SOAP 操作集创建 WCF-Custom 端口或 BizTalk SQL 适配器端口。 有关详细信息,请参阅 使用端口绑定文件配置物理端口绑定以使用 SQL 适配器

    已成功生成SQL Server项目的元数据。 可以使用元数据将消息发送到SQL Server以执行特定操作。 有关如何执行这些操作的详细信息 ,请参阅使用 SQL 适配器开发 BizTalk 应用程序

使用添加适配器服务引用插件生成 WCF 客户端或 WCF 服务协定

可以使用添加适配器服务引用插件为出站操作生成 WCF 客户端代码,或为入站操作生成 WCF 服务代码。

为SQL Server操作生成 WCF 客户端类或服务协定

  1. 在“添加适配器服务引用插件”中,从 “选择协定类型” 下拉列表中选择协定类型,具体取决于是执行入站操作还是出站操作。

  2. 浏览或搜索 (类别(如数据库表) ),或查找要为其生成 WCF 客户端 (或 WCF 服务协定) 的特定操作。
    例如,若要浏览 Employee 表中的操作,请在 “选择类别 ”框中:

    1. () / 展开根节点,查看SQL Server数据库的操作所依据的类别。

    2. 在根节点下,展开 “表” 节点以查看可用的表。

  3. 单击“ 员工 表”节点,在“ 可用类别和操作 ”框中,选择要为其生成 WCF 客户端 (或 WCF 服务协定) 的操作或类别,然后单击“ 添加”。 所选操作在 “已添加的类别和操作 ”框中列出。

    下图显示了“添加适配器服务引用”插件,其中选择了“员工”表的“插入”和“选择”操作。

    生成 WCF 客户端或服务协定

    重要

    根据所选) (或类别的出站操作,可能会生成多个 WCF 客户端类。 有关详细信息,请参阅为SQL Server项目生成 WCF 客户端或 WCF 服务协定

  4. 在大多数情况下,默认序列化选项已足够;但是,如果需要,可以控制有关生成的代码和使用的序列化程序类型的几个方面。 若要设置这些选项,请执行以下操作:

    1. 单击“ 高级选项” 打开“ 高级选项” 框。

    2. 在“选择生成的代理的选项”下的“高级选项”框中,选择所需的选项。 例如,可以选择是为 WCF 客户端生成异步方法还是禁用配置文件的生成。

    3. “序列化程序 ”下,选择应使用的序列化程序。

      下图显示了“ 高级选项” 框,其中为序列化程序选择了默认选项 (“自动 ”,) 未选择其他选项。

      “高级选项”框默认设置

      可以在“ 高级 选项”框中配置的选项等效于使用 ServiceModel 元数据实用工具 (svcutil.exe) 时可用的一些选项。 有关这些选项的详细信息,请参阅 ServiceModel 元数据实用工具 (Svcutil.exe)

  5. 单击 “确定” 。 添加适配器服务引用插件将 WCF 客户端类保存 (或 WCF 服务接口) ,以及已在项目目录中选择的操作和类别的帮助程序代码。 默认情况下,还会保存配置文件。 为入站和出站操作生成的文件略有不同;有关详细信息,请参阅为SQL Server项目生成 WCF 客户端或 WCF 服务协定

    可以选择“ 可用类别和操作 ”框中列出的任何节点。 如果选择类别节点,则将选择该节点及其子节点下可用的所有操作。 例如,若要为 Employee 表显示的所有操作生成 WCF 客户端,可以选择 Employee 节点。

另请参阅

使用 SQL 适配器在 Visual Studio 中获取SQL Server操作的元数据