连接数据源

更新日期: 2006 年 12 月 12 日

在 Reporting Services 中,报表定义可包含一个或多个查询、布局信息,以及指向到报表中所使用的外部数据源的数据源连接。数据源连接可指定数据源类型、连接字符串和凭据。在 Reporting Services 中,数据源连接信息在数据集中指定。针对报表定义数据集的第一步是定义要使用的数据源。

Reporting Services 提供了支持以下数据源类型的数据扩展插件:SQL Server、Analysis Services、Oracle、ODBC、OLE DB、SAP NetWeaver BI 和 XML。开发人员可以使用 Microsoft.ReportingServices.DataProcessing API 来创建数据处理扩展插件以支持其他类型的数据源。数据源中存储的连接信息会因数据源的类型而异。本主题中稍后部分中将提供不同类型的连接字符串的示例。

您可以按以下形式指定数据源:

  • 作为存储在报表内的嵌入信息(这称为“报表特定数据源**”)。
  • 作为共享数据源,该数据源是在报表设计器中单独定义的,在报表发布时将作为单独项保存在报表服务器上。
  • 作为用于在运行时选择数据源的表达式。

数据源中不包含查询信息。查询信息包含在数据集中,而数据集使用数据源来连接数据库。有关详细信息,请参阅定义报表数据集

若要指定在报表定义中使用的数据源,则必须在报表设计器而不是服务器资源管理器中创建一个数据源。SQL Server 2005 中附带的报表设计器版本无法使用在服务器资源管理器中创建的 Visual Studio 数据源。

在报表发布到报表服务器后,您就可以配置报表使用其他数据源。例如,可以从测试数据源切换至基础数据结构相同的生产数据源。

有关详细信息,请参阅在 Reporting Services 中设置数据源属性

预览使用的凭据

在报表设计器中预览报表时,将从数据源中检索数据。用于连接数据源的凭据是在**“数据源”“共享数据源”对话框的“凭据”**选项卡中指定的。这些凭据存储在本地项目配置文件中,只能用于存储凭据的计算机。如果将项目文件复制到另一台计算机,则必须重新为数据源定义凭据。

报表特定数据源

您可以在报表中创建仅供该报表使用的数据源。此数据源可用于该报表中定义的任何数据集,但不能用于项目中的其他报表。当只有一个报表要求特定连接,而您不希望在发布后单独管理数据源时,应使用报表特定数据源。发布报表之后,该数据源将作为报表属性的一部分进行管理。有关指定报表特定数据源的详细信息,请参阅如何创建或编辑报表特定数据源(报表设计器)

共享数据源

您可以创建多个报表可以共享的数据源以简化连接维护。如果有多个报表使用相同的数据源,而这些报表的连接信息发生了变化,您只需要执行一次操作,就可以更改所有报表的连接信息。当报表从测试环境移至生产环境,或您希望将数据源作为单独项进行管理时,这非常有用。

在报表设计器中创建共享数据源后,它将作为单独的文件存储在报表项目中。此文件是一个 XML 文档,其中包含数据源名称、数据源 ID 和连接信息。在您发布项目中的报表时,也将发布数据源。如果服务器上已经存在该数据源,项目的 OverwriteDataSources 属性将决定项目中的数据源是否覆盖服务器上的数据源。您可以通过项目的部署属性更改此属性。报表发布之后,数据源将与项目中的其他报表并存,可以单独进行管理。

若要查看有关使用共享数据源的说明,请参阅以下主题:

数据源表达式

您可以在连接字符串中包含表达式,以允许用户在运行时选择数据源。例如,假设一个跨国公司在多个国家/地区都配置了数据服务器。使用基于表达式的连接字符串,要运行销售报表的用户就可以在运行报表之前选择用于特定国家/地区的数据源。

下面的示例说明了 SQL Server 连接字符串中数据源表达式的用法。该示例假设您已经创建了一个名为 ServerName 的报表参数:

="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks

数据源表达式在运行时或预览报表时进行处理。表达式必须用 Visual Basic 编写。定义数据源表达式时请遵循以下原则:

  • 使用静态连接字符串设计报表。静态连接字符串指的是不通过表达式设置的连接字符串(例如,按照步骤创建报表特定数据源或共享数据源时,定义的就是静态连接字符串)。使用静态连接字符串,可以在报表设计器中连接到数据源,以便获取创建报表所需的查询结果。
  • 定义数据源连接时,请不要使用共享数据源。不能在共享数据源中使用数据源表达式。您必须为报表定义报表特定数据源。
  • 在连接字符串之外单独指定凭据。您可以使用存储的凭据、提示凭据或集成安全性。
  • 添加报表参数以指定数据源。对于参数值,可以提供可用值的静态列表(这种情况下,可用值应该是报表可以使用的数据源),或定义在运行时检索数据源列表的查询。
  • 请确保列表中的数据源共用同一个数据库架构。所有报表设计都以架构信息为基础。如果用于定义报表的架构和报表运行时使用的实际架构不相符,报表将可能无法运行。
  • 在发布报表之前,使用表达式替换静态连接字符串。使用表达式替换静态连接字符串之前,必须保证已经完成了报表的设计。一旦使用了表达式,就不能在报表设计器中执行查询。此外,“数据集”窗口中的字段列表以及“参数”列表将不会自动更新。

密码中的特殊字符

如果将 ODBC 或 SQL 数据源配置为提示输入密码或在连接字符串中包含密码,并且用户输入了具有标点符号等特殊字符的密码,则有些基础数据源驱动程序无法验证特殊字符。处理报表时,可能会出现“密码无效”这一消息来指示此问题。如果不能更改密码,则可以使用数据库管理员角色将相应的凭据作为系统 ODBC 数据源名称 (DSN) 的一部分存储在服务器上。有关详细信息,请参阅 .NET Framework SDK 文档中的“OdbcConnection.ConnectionString”。

ms156450.note(zh-cn,SQL.90).gif注意:
建议您不要在连接字符串中添加登录信息(如密码)。报表设计器在“数据源”对话框中提供了一个单独的选项卡,用于输入凭据。这些凭据安全地存储在报表设计器计算机上。

一般连接字符串

下表列出了各种数据源的连接字符串示例。

数据源 示例 说明

SQL Server OLTP 数据库

data source="(local)";initial catalog=AdventureWorks

将数据源类型设置为 SQL Server

Analysis Services 数据库

data source=localhost;initial catalog=Adventure Works DW

将数据源类型设置为 SQL Server Analysis Services

报表模型数据源

Server=http://myreportservername/reportserver; datasource=/models/Adventure Works

指定报表服务器或文档库 URL 以及报表服务器文件夹或文档库文件夹命名空间中已发布的模型的路径。

SQL Server 2000 Analysis Services 服务器

provider=MSOLAP.2;data source=<remote server name>;initial catalog=FoodMart 2000

将数据源类型设置为 OLE DB Provider for OLAP Services 8.0

如果将 ConnectTo 属性设置为 8.0,则可以快速连接到 SQL Server 2000 Analysis Services 数据源。若要设置此属性,请使用“连接属性”对话框中的“高级属性”选项卡。

Oracle 服务器

data source=myserver

将数据源类型设置为 Oracle。此外,还必须在报表设计器计算机上和报表服务器上安装 Oracle 客户端工具。有关详细信息,请参阅为 Oracle 数据库中的关系数据定义报表数据集

SAP NetWeaver BI 数据源

DataSource=http://mySAPNetWeaverBIServer:8000/sap/bw/xml/soap/xmla

将数据源类型设置为 SAP NetWeaver BI。有关详细信息,请参阅为 SAP NetWeaver BI 系统中的多维数据定义报表数据集

Hyperion Essbase 数据源

Data Source=https://localhost:13080/aps/XMLA; Initial Catalog=Sample

将数据源类型设置为 Hyperion Essbase。有关详细信息,请参阅为 Hyperion Essbase 数据库中的多维数据定义报表数据集

XML 数据源

data source=http://adventure-works.com/results.aspx

将数据源类型设置为 XML。其连接字符串是一个指向 XML 文档的 URL。有关详细信息,请参阅为 XML 数据定义报表数据集

如果无法使用 localhost 连接到报表服务器,请检查是否已启用网络协议 TCP/IP 协议。有关详细信息,请参阅连接到 SQL Server 数据库引擎

请参阅

任务

如何创建或编辑报表特定数据源(报表设计器)
如何创建或编辑共享数据源(报表设计器)

概念

共享数据源和报表特定数据源
在报表布局中处理数据
在 Reporting Services 中设置数据源属性
报表服务器文件夹层次结构

其他资源

数据源(“凭据”选项卡,报表设计器)
共享数据源(“凭据”选项卡,报表设计器)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

更新内容:
  • 添加了 Hyperion Essbase 数据源信息。

2006 年 7 月 17 日

更新内容:
  • 更新了报表模型数据源连接字符串

2006 年 4 月 14 日

新增内容:
  • 添加了 SAP NetWeaver BI 数据源

2005 年 12 月 5 日

新增内容:
  • 密码中的特殊字符