我有几十个旧报表,其中许多都使用 Sql Server 存储过程作为数据源。我正在尝试在使用VB.NET 2010和CR for Visual Studio 2010 version 13.0.2构建的应用程序中使用它们。
当我基于存储过程运行报告时,我收到一条错误消息,内容类似于
找不到表“REPORT_SCHEDULEB”
报告中的表定义如下所示:
LogOnInfo.ConnectionInfo for REPORT_SCHEDULEB:
Name: "REPORT_SCHEDULEB", Location: "Proc(REPORT_SCHEDULEB;1)"
AllowCustomConnection: False, DBName: myDb, IntegratedSecurity: False
ServerName: myComputer, User: myName, Password: myPassword, Attributes:
Database DLL: crdb_ado.dll
QE_DatabaseName: myDb
QE_DatabaseType: OLE DB (ADO)
Auto Translate: -1
Connect Timeout: 0
Data Source: myComputer
General Timeout: 0
Initial Catalog: myDb
Integrated Security: False
Locale Identifier: 1033
OLE DB Services: -5
Provider: SQLOLEDB
Tag with column collation when possible: 0
Use DSN Default Properties: False
Use Encryption for Data: 0
Owner: dbo
QE_ServerDescription: myComputer
QE_SQLDB: True
SSO Enabled: False
Owner: dbo
我猜测Location字段的定义方式存在一些问题,但是
- 当我尝试在报告编辑器中更改覆盖的限定表名称时,它不会接受更改,并且
- 我真的宁愿找到一个程序化的解决方案,而不是手动编辑数十份报告。
因此,我尝试在我的代码中设置 table.Location 值,但这会引发 COM 异常——我猜它在某种程度上是只读的。
我还想到了设置某种QualifiedName属性的可能性,但还没有找到一种方法来做到这一点。
有任何想法吗?
TIA