这些报告全部查询sql Server数据库(sql 2005).
该数据库服务器正在被一个新的系统(运行sql 2008 R2)所取代,现有的数据库将被移动到新的服务器.
新的数据库服务器将具有不同的名称(我可以通过Crystal Reports连接来寻址),
然而,其中一个应用程序也在同时升级.旧数据库(DB_A)将在新服务器上恢复以进行历史报告,并将创建一个新数据库(DB_B).
新的DB_B将具有非常相似的模式,所以我希望大多数Crystal Reports应该能够对新的DB_B运行,而不需要修改任何修改,而不是将报表定义指向新的DB_B.
解决方法
这适用于更改数据库的位置,更改为新数据库,以及更改报告中使用的单个表的位置或名称.
要更改数据源连接,请转到数据库菜单,然后单击设置数据源位置.
>更改数据源连接:
>从当前数据源列表(上方框)中,单击要更改的数据源连接上的一次.
>在替换为列表(底部框)中,在新数据源连接上单击一次.
>单击更新.
>更改个别表:
>从当前数据源列表(顶部)中,展开要更改的数据源连接.
>找到要更新位置或名称的表.
>在“替换为”列表(底部框)中,展开新的数据源连接.
>找到要更新的新表以指向.
>单击更新.
>请注意,如果表名已更改,旧表名仍将显示在“字段资源管理器”中,即使它现在正在使用新表. (您可以确认这是查看表数据源位置中当前数据源中表的属性的表名)截图http://i.imgur.com/gzGYVTZ.png)可以从数据库专家 – >中的上下文菜单将旧表名重命名为新名称.选定表.
>更改子报表:
>对您可能已经在报告中嵌入的任何子报表重复上述步骤.
>关闭“设置数据源位置”窗口.
>任何命令或sql表达式:
>转到数据库菜单,然后单击数据库专家.
>如果报表设计者使用“添加命令”来编写自定义sql,它将显示在右侧的“选定表”框中.
右键单击该命令并选择“编辑命令”.
>检查该sql是否正在指定特定的数据库.如果是这样,你可能需要改变它.
>关闭数据库专家窗口.
>在右侧的“字段资源管理器”窗格中,右键单击任何sql表达式.
>检查sql表达式是否指定特定的数据库.如果是这样,你也可能需要改变它.
>完成编辑后,保存并关闭“公式编辑器”窗口.
并尝试再次运行报告.
关键是首先更改数据源连接,然后更改需要更新的任何表,然后再更改其他内容.连接不会自动更改下面的表.那些桌子就像是在他们看到的第一只大鹅类动物上印上的幼鸽.他们将继续绕过所有的理由和逻辑,并去除他们一直去的地方,除非你特别手动改变它们.
为了使其更方便,这里有一个提示:您可以在“数据库”菜单中“显示@R_403_194@”,您将看到任何表格中的数据库(如“Sales”“dbo”.“Customers”)的表名称直接到特定的数据库.这可能会使狩猎更容易,如果你有很多事情进行.当我解决这个问题时,我不得不更改每个表,以指向新数据库中的新表.