数据连接是Microsoft Office InfoPath 表单与存储或提供该表单数据的外部数据源之间的动态链接。 数据源是定义和存储窗体数据的字段和组的集合。 控件绑定到数据源中的字段和组,并向用户显示数据。
窗体可以有一个主数据连接(称为主数据连接),并且可以有选择地具有一个或多个辅助数据连接。 根据表单的目标,数据连接可能会查询表单数据或将其提交到外部数据源,例如Microsoft SQL Server数据库或 Web 服务。
本文内容
数据连接概述
数据连接是窗体与存储或提供该表单数据的数据源之间的动态链接。 窗体可以有一个主数据连接(称为主数据连接),并且可以有选择地具有一个或多个辅助数据连接。 主数据连接定义窗体的主数据源。 XML 架构描述如何在表单的主数据源中存储数据。 窗体只能有一个主数据连接,在创建基于外部数据源的表单模板时,会自动创建该连接。 设计表单模板时,可以根据需要创建任意数量的辅助数据连接。
根据表单的目标,可以创建与外部数据源的主要或辅助数据连接,例如Microsoft SQL Server数据库或 Web 服务。 外部数据源是一种数据存储,用于将数据发送到或可以从基于表单模板的表单接收数据。 InfoPath 适用于以下外部数据源:
- Microsoft Office Access 数据库
- Microsoft SQL Server 数据库
- Web 服务
- 运行 Microsoft Windows SharePoint Services 的服务器上的文档库或列表
- XML 文件
可以创建与外部数据源的三种类型的数据连接:仅查询数据、仅提交数据或同时查询和提交数据。 查询数据连接从数据源接收数据,并将该数据存储在窗体中。 提交数据连接将数据从表单发送到数据源、Web 服务器上的应用程序、运行Microsoft Windows SharePoint Services的服务器上的文档库或电子邮件。 查询和提交数据连接既接收来自数据源的数据,又将数据发送到数据源。 创建数据连接时,可以指定所需的数据连接类型。 例如,可以创建执行以下任一操作的数据连接:
- 从数据库查询数据
- 在电子邮件中提交表单数据
- 将表单数据提交到 Web 服务器上的应用程序
- 将表单数据提交到使用 XmlFormView 控件的自定义应用程序
- 通过自定义编程代码(例如 C#、Microsoft Visual Basic .NET 或 Microsoft JScript)查询或提交数据。
- 使用在运行 Microsoft Office SharePoint 服务器 2007 的服务器上存储在数据连接库中的连接设置
- 在 Microsoft BizTalk Server 2004 或 BizTalk Server 2006 上查询或提交数据到 Human Workflow Services
所使用的连接类型取决于窗体的目标以及要将窗体连接到的外部数据源的类型。
查询数据连接
查询数据连接从外部数据源获取数据,并将该数据存储在窗体的主数据源或辅助数据源的字段中。 然后,可以将控件绑定到这些字段,以在窗体中显示该数据。 可以通过以下方式创建查询数据连接:
- 设计基于数据库、Web 服务或连接库中存储的设置的表单模板。 然后,外部数据源的结构定义窗体的主数据源。
- 通过添加查询数据库、Web 服务、SharePoint 列表或库或 XML 文件的辅助数据连接来修改现有表单模板。
设计基于数据库、Web 服务或连接库中设置的新表单模板时,将创建一个查询数据连接,该连接将成为基于该表单模板的表单的主要数据连接。 只能将一个查询数据连接定义为表单模板的主数据连接。 如果需要从其他数据源查询数据,可以创建从这些数据源查询数据的辅助数据连接。 本文稍后将详细介绍辅助数据连接。
将查询数据的辅助数据连接添加到表单模板时,可以指定 InfoPath 是在用户每次打开表单时还是当用户填写表单时发生特定事件(例如单击按钮以显示选项列表)后使用数据连接。 若要在特定事件发生后使用数据连接,请使用以下方法之一:
- 插入一个按钮控件,用于刷新窗体中的数据。
- 添加规则以在窗体上存在条件时使用数据连接。
- 为特定事件编写自定义代码。
提交数据连接
当用户提交表单时,该表单中的数据将通过提交数据连接发送到外部数据源。 可以将该表单模板配置为允许用户将数据发送到以下类型的外部数据源:
- Microsoft Office Access 数据库
- Microsoft SQL Server 数据库
- Web 服务
还可以添加按以下方式提交数据的辅助数据连接:
- 将表单数据提交到运行 Microsoft Windows SharePoint Services 的服务器上的文档库。
- 在电子邮件中提交表单数据。
- 将表单数据提交到 Web 服务器上的应用程序。
可通过以下方式创建提交数据连接:
设计基于数据库、Web 服务或存储在运行 Office SharePoint 服务器 2007 的服务器上的连接库中的设置的新表单模板。 然后,外部数据源的结构定义窗体的主数据源。
通过添加辅助数据连接来修改现有表单模板,然后将表单模板配置为允许用户通过此辅助数据连接提交其表单。
提示
设计基于 Office Access 或 SQL Server 数据库的表单模板时,如果数据库满足特定要求,InfoPath 会自动配置提交数据连接。 在“ 另请参阅 ”部分中找到有关这些要求的详细信息的链接。 如果希望用户使用其他类型的提交数据连接来提交已完成的表单,可以选择禁用“提交”功能。
在大多数情况下,将一个提交数据连接配置为表单模板的主要提交操作。 但是,你可以设计表单模板,以便用户可以使用规则或自定义代码将其已完成的表单提交到多个位置。 例如,可以将表单模板配置为允许用户通过电子邮件将其已完成的表单提交到 Web 服务。 通常,将表单模板配置为提交表单中的所有数据。 但是,如果使用自定义代码提交表单数据,或者正在配置表单模板以允许表单将数据提交到 Web 服务,则可以提交表单的一部分数据。
查询和提交数据连接
设计基于数据库或 Web 服务的表单模板时,可以创建一个数据连接,以便从中获取数据并将数据提交到数据库或 Web 服务。 如果要设计基于数据库的表单模板,则数据连接可以获取或提交数据。 但是,若要使基于此表单模板的表单将数据提交到数据库,必须满足以下要求:
- 你未设计与浏览器兼容的表单模板。
- 主数据连接中的所有表都必须包含主键、唯一约束或唯一索引。
- 查询中的所有表都必须具有简单的分层关系。
- 窗体主数据源中的数据字段均不能存储大型二进制数据类型。
有关这些要求的详细信息,请参阅本文后面的 连接到外部数据源的注意事项 。
可从 Web 服务获取数据或将数据提交到 Web 服务的数据连接就像查询数据连接和合并为单个数据连接的提交数据连接一样。
使用主数据连接
主数据连接与窗体的主数据源建立连接。 XML 架构描述用于在窗体的主数据源中存储数据的结构。 可以使用“ 数据源”任务 窗格设计数据源,也可以在向表单模板添加控件时让 InfoPath 自动创建数据源。 还可以基于外部数据源设计表单模板,从而定义主数据源的结构。 一个表单模板只能有一个主数据连接。
如果主数据连接连接到外部数据源,则使用主数据连接的方式取决于它连接到的数据源类型。
数据库 在基于数据库设计表单模板时,InfoPath 会创建一个主数据连接,用于查询和选择性地将数据提交到该数据库。 如果仅使用 InfoPath 填写表单,并且数据库满足 连接到外部数据源的注意事项 部分中列出的要求,InfoPath 会自动创建提交数据连接并配置表单模板以允许用户提交其表单。 如果使用浏览器填写表单,InfoPath 不会创建与数据库的提交数据连接。 浏览器兼容的表单模板不支持将数据提交到数据库的数据连接。
提示
如果使用浏览器填写表单,并且你想要将数据提交到数据库,则可以通过将表单连接到将数据提交到数据库的 Web 服务来执行此操作。
Web 服务 在基于 Web 服务设计表单模板时,可以创建一个主数据连接,以便查询和提交数据、仅查询数据或仅提交数据。 如果选择提交数据,InfoPath 会自动配置表单模板,以允许用户提交其表单。 可以指定是提交某些表单数据还是提交所有表单数据。 如果只提交了某些数据,则可以指定特定组中哪些字段包含应提交的数据,具体取决于 Web 服务的要求。
基于数据库或 Web 服务设计表单模板时,InfoPath 会创建一个主数据源,其中包含与数据库或 Web 服务中存储数据的方式相对应的查询字段、数据字段和组。 查询字段包含在查询中用于通过使用查询数据连接从数据库检索数据的值。 查询结果将放入数据字段中,用户可以在打开窗体时编辑这些数据字段。 当用户提交表单时,将使用提交数据连接发送数据字段中的数据。 由于主数据源中的字段和组必须与数据在外部数据源中的存储方式匹配,因此无法修改这些字段和组。 但是,可以将字段或组添加到主数据源中的根字段。
若要使用户能够查看、选择、编辑或提交数据字段中的数据,可以将控件(如文本框和检查框)绑定到表单中的字段。 如果要查询并显示用户可以选择的其他值,可以将列表框等控件绑定到查询字段。 如果希望用户从列表中选择值,可以将控件(如列表框)绑定到数据字段,然后将控件的属性设置为显示来自辅助数据源或主数据源中的重复字段的值。
使用辅助数据连接
辅助数据连接将窗体连接到外部数据源。 当需要查询表单数据或将表单数据提交到主数据连接中的外部数据源以外的外部数据源时,或者希望用户将数据提交到多个外部数据源时,辅助数据连接非常有用。 可以根据需要创建任意数量的辅助数据连接。
辅助数据连接可以查询数据或将数据提交到以下类型的外部数据源:
- Office Access 数据库
- SQL Server 数据库
- Web 服务
- 运行 Windows SharePoint Services 的服务器上的文档库或列表
- XML 文件
通过使用辅助数据连接,还可以使用户能够将表单数据提交到 Web 服务器上的应用程序、运行 Windows SharePoint Services 的服务器上的文档库,或者通过电子邮件提交表单数据。
如果创建查询数据的辅助数据连接,则默认情况下,窗体在窗体打开时使用此数据连接。 还可以通过通过以下方式配置表单模板来使用此数据连接:
- 将刷新按钮添加到表单模板,用户可以单击该按钮发送查询。
- 向表单模板添加规则,以便使用此数据连接查询数据源。
- 将自定义代码添加到用于发送查询的表单模板。
向窗体添加辅助数据连接时,InfoPath 会自动创建一个辅助数据源,其中包含与外部数据源中存储数据的方式匹配的数据字段和组。 这有助于确保数据的完整性。 不能修改辅助数据源中的字段和组。
存储数据以供脱机使用
添加从外部数据源查询数据的辅助数据连接时,可以将连接配置为将查询结果存储在用户的计算机上。 这可确保如果用户的计算机未连接到网络,则可以填写表单。 这称为脱机工作。
如果以此方式配置辅助数据连接,则当用户的计算机连接到网络时,查询将发送到外部数据源。 然后,查询结果存储在表单的辅助数据源中,当用户填写表单时,它们将显示在表单中。 每次用户执行新查询时,都会缓存数据,以便尽可能使数据保持最新。
在决定存储的数据是否适合给定查询时,InfoPath 会考虑查询参数。 创建数据连接时,可以选择是否在表单中显示一组默认存储的数据,以防数据源不可用。 应考虑查询中的数据是否适合所有用户,或者表单是否应显示特定于每个用户的数据。 例如,如果查询返回的数据基于用户的标识或角色,则使用在设计时配置的默认数据集(而不是使用查询结果)可能会导致该用户的数据不正确。
连接到外部数据源的注意事项
InfoPath 支持与以下类型的外部数据源建立数据连接:
- Office Access 数据库
- SQL Server 数据库
- Web 服务
- 运行 Microsoft Windows SharePoint Services 的服务器上的文档库或列表
- XML 文件
以下部分提供有关连接到其中每个外部数据源的信息和注意事项。
Microsoft Office Access 或 SQL Server 数据库
InfoPath 支持与 Access 数据库和SQL Server数据库的数据连接。 若要连接到另一种数据库,可以使用与该数据库一起使用的 Web 服务。
窗体可以通过主数据连接或辅助数据连接查询数据库中的数据,并且可以为连接选择任意数量的数据库表。 选择的第一个表是主表。 随后选择的任何表都必须包含与主表相关的字段。 InfoPath 尝试通过匹配两个表中的字段名称来设置此关系。 在创建数据连接时,可以选择使用此关系或添加自己的表关系。
如果表单所基于的表单模板且数据库满足以下要求,则表单可以通过表单的主数据连接将数据提交到数据库:
- 表单模板不是与浏览器兼容的表单模板 如果要设计与浏览器兼容的表单模板,InfoPath 将不会在主数据连接中创建提交数据连接。 若要允许用户在基于浏览器兼容表单模板的表单中提交数据,请使用与数据库一起使用的 Web 服务。
- 主数据源中每对相关表的左表包含一个主键 每对相关表的至少一个关系必须包含左表中的主键。
- 表单的主数据源中没有一个数据字段存储大型二进制数据类型 如果查询包含可存储大型二进制数据类型的字段(例如图片、图像、OLE 对象、文件附件、Office Access 备注数据类型或 SQL 文本数据类型),InfoPath 将禁用提交数据连接。
如果表单模板和数据库满足所有这些要求,InfoPath 会创建提交数据连接并将表单模板配置为允许用户提交其表单。 如果希望用户通过其他数据连接提交其表单数据,则可以在主数据连接中禁用提交数据连接。
设计基于数据库的表单模板时,InfoPath 会创建一个主数据源,其中包含与数据库中存储数据的方式匹配的查询字段和数据字段。 InfoPath 还将 “运行查询 ”和“ 新建记录” 按钮添加到表单模板的默认视图中。 当用户单击“ 运行查询 ”按钮时,InfoPath 会将包含查询字段中数据的查询发送到数据库。 “ 新建记录 ”按钮清除表单中当前的所有数据,并将绑定到数据字段的控件设置为数据字段的默认值。 当用户将数据提交到数据库时,对数据字段中数据的任何更改会更改数据库中的相应记录。 如果用户从数据字段中删除数据,则会从数据库中删除相应的记录。 最后,任何已添加到数据字段的数据将更新相应的字段或向数据库添加相应的记录。
如果要将窗体连接到数据库,并且已为窗体创建了主数据连接,可以添加查询数据库的辅助数据连接。 添加辅助数据连接时,InfoPath 会创建一个辅助数据源,其中包含与数据库表中的字段匹配的查询字段、数据字段和组。 可以选择多个数据库表并建立表关系,就像对主数据连接一样。
创建查询数据的辅助数据连接时,可以将连接配置为在用户每次打开表单时发送查询,也可以执行以下操作之一来发送查询:
- 添加一个按钮,用户可以单击该按钮来刷新数据连接中的数据。
- 创建使用数据连接发送查询的规则。
- 编写自定义代码,用于在运行查询时发送查询。
Web 服务
表单可以通过主数据连接或辅助数据连接查询数据或将数据提交到 Web 服务。 InfoPath 在连接到 Web 服务时遵循以下标准:
- 简单对象访问协议 (SOAP) SOAP 是定义用于与 Web 服务通信的 XML 消息的通信协议。
- Web 服务描述语言 (WSDL) WSDL 是用于描述 Web 服务的位置、通信协议和接口的 XML 架构标准。 InfoPath 只能使用文档文本样式 Web 服务。
- 通用说明发现和集成 (UDDI) UDDI 是描述企业提供的 Web 服务的目录服务。
设计基于 Web 服务的新表单模板时,InfoPath 会创建与 Web 服务的主数据连接,然后创建一个主数据源,其中包含与 Web 服务的 XML 架构匹配的查询字段、数据字段和组。
如果将表单模板配置为在同一 Web 服务中使用另一个操作,或者希望同时使用其他 Web 服务,则可以向表单模板添加辅助数据连接。 添加查询数据的辅助数据连接时,InfoPath 会创建一个辅助数据源,其中包含与 Web 服务的架构匹配的字段和组。 如果添加用于提交数据的辅助数据连接,可以将连接配置为发送表单中的所有或仅部分数据,具体取决于 Web 服务中的参数。
创建与 Web 服务的主要或辅助数据连接时,可以指定连接是仅查询数据、仅提交数据,还是同时查询和提交数据。 如果连接查询数据,InfoPath 会将 “运行查询 ”按钮添加到表单模板。 当用户单击“ 运行查询 ”按钮时,InfoPath 会将包含查询字段中数据的查询发送到 Web 服务。 如果连接提交数据,InfoPath 将启用表单的“提交”功能。 配置提交数据连接时,InfoPath 将确定 Web 服务所需的数据。 根据该信息,可以指定表单模板中的哪些字段应将其数据提交到 Web 服务。
SharePoint 网站上的文档库或列表
窗体可以通过辅助数据连接与运行 Windows SharePoint Services 的服务器上的文档库或列表来查询数据。 窗体还可以将数据提交到服务器上的文档库。 无法通过主数据连接连接到库或列表。
如果创建从文档库或列表查询数据的辅助数据连接,InfoPath 会为与文档库或列表中的列匹配的表单创建辅助数据源。
如果创建将数据提交到文档库的辅助数据连接,并且希望此提交数据连接成为表单模板的主要提交操作,则必须启用表单模板的“提交”功能,并使用“ 提交选项 ”对话框 (“工具 ”菜单将其与数据连接相关联, “提交选项” 命令) 。 默认情况下,表单中的所有数据都通过提交数据连接提交。 如果只想提交某些数据,可以通过为表单模板编写自定义代码来执行此操作。
XML 文件
窗体可以通过与 XML 文件的辅助数据连接来查询数据。 例如,可以将Microsoft Office Excel 工作表另存为 XML 文件,然后使用辅助数据连接在表单中查询和显示该文件中的数据。 还可以使用辅助数据连接从 XML 文件查询数据,以便从返回 XML 的 Web 服务器上的应用程序检索数据,例如Microsoft ASP.NET 应用程序、通用网关接口 (CGI) 脚本,或使用 Internet 服务器应用程序编程接口 (ISAPI) 的应用程序。
Web 服务器上的应用程序
可以创建将数据提交到 Web 服务器上的应用程序的辅助数据连接,例如 ASP.NET 应用程序、CGI 脚本或使用 ISAPI 的应用程序。 若要将数据提交到 Web 服务器上的应用程序,必须将表单模板配置为允许用户提交其表单数据并配置数据连接的提交选项,方法是在“提交选项”对话框中选择“Web 服务器 (HTTP) ”, (“工具”菜单、“提交选项”命令) 。
注意
一个窗体只能有一个将数据提交到 Web 服务器上的应用程序的数据连接。 不能将表单模板配置为允许表单使用规则将数据提交到 Web 服务器上的应用程序。
数据连接库中的连接设置
如果多个表单使用相同或类似的数据连接,请考虑将每个数据连接的设置存储在运行 Office SharePoint 服务器 2007 的服务器上的数据连接库中的数据连接文件中。 数据连接文件是一个 XML 文件,其中包含单个外部数据源的连接信息,并且具有 .xml 或 .udcx 文件扩展名。 当用户打开连接到数据连接文件的窗体时,InfoPath 将使用该文件中的设置连接到外部数据源。 使用数据连接文件的优点包括:
- 多个窗体可以使用同一个数据连接文件,因此无需为每个表单从头开始创建相同的数据连接。
- 如果外部数据源的位置或连接设置发生更改,则只需更新数据连接文件,而不更新每个表单模板。
- 数据连接文件可以包含备用身份验证信息,当用户使用浏览器填写表单时,服务器可以使用这些信息。
- 如果表单中的所有数据连接都使用数据连接文件,则未完全信任安全级别在浏览器中填写的表单可以连接到另一个域中的计算机。
若要将表单连接到数据连接文件,该文件必须存储在运行 Office SharePoint 服务器 2007 的服务器上的数据连接库中,并且它必须遵循通用数据连接 (UDC) 2.0 版文件格式。
注意
UDC 2.0 文件格式是 Microsoft Office FrontPage 使用的 1.0 版格式的超集。 InfoPath 不能使用版本 1.0 格式的数据连接文件。 在 “另请参阅 ”部分中查找有关数据连接库和数据连接文件的详细信息的链接。