Crystal reports 如何将Crystal Reports指向新数据库
我有一个Crystal Reports 2008用户,拥有100多份定制开发的报告。 该报告包含所有查询Sql Server数据库(Sql 2005)。Crystal reports 如何将Crystal Reports指向新数据库,crystal-reports,crystal-reports-2008,Crystal Reports,Crystal Reports 2008,我有一个Crystal Reports 2008用户,拥有100多份定制开发的报告。 该报告包含所有查询Sql Server数据库(Sql 2005)。 此数据库服务器将被新系统(运行SQL 2008 R2)替换,现有数据库将移动到新服务器。 新的数据库服务器将有一个不同的名称(我可以通过Crystal Reports连接地址), 然而,其中一个应用程序也正在同时升级。旧数据库(DB_A)将在新服务器上恢复以进行历史报告,并将创建一个新数据库(DB_B)。 新的DB_B将有一个非常相似的模式,因
此数据库服务器将被新系统(运行SQL 2008 R2)替换,现有数据库将移动到新服务器。 新的数据库服务器将有一个不同的名称(我可以通过Crystal Reports连接地址), 然而,其中一个应用程序也正在同时升级。旧数据库(DB_A)将在新服务器上恢复以进行历史报告,并将创建一个新数据库(DB_B)。 新的DB_B将有一个非常相似的模式,因此我希望大多数Crystal报告都能够针对新的DB_B运行,除了将报告定义指向新的DB_B之外,几乎没有修改 当然,我的大多数用户自定义开发的报表都是针对DB_A进行查询的
我的问题是:如何修改现有的Crystal Reports文件以指向新的数据库名称(DB_B)而不是旧的数据库(DB_A)?选择数据库|设置数据源位置。。。选择当前连接的数据库节点(黄色圆柱体),然后选择所需连接的数据库节点(您可能需要进行身份验证),然后单击更新 您还需要为“子报表”节点执行此操作 仅供参考,您也可以通过分别选择每个表,然后选择更新来执行各个表。使用数据库菜单和“设置数据源位置”菜单选项更改报表中每个表的名称或位置 这适用于更改数据库的位置、更改为新数据库以及更改报表中使用的单个表的位置或名称 要更改数据源连接,请转到“数据库”菜单并单击“设置数据源位置”
为了方便起见,这里有一个提示:您可以在“数据库”菜单中“显示SQL查询”,对于直接进入特定数据库的任何表,您将看到数据库限定的表名(如“Sales”、“dbo”、“Customers”)。如果你有很多事情要做的话,这可能会让狩猎变得更容易。当我解决这个问题时,我必须更改每个表以指向新数据库中的新表。刚刚尝试了这个,报表仍在查询DB_A。此外,当我从数据库菜单中选择“Show SQL Query”时,它显示“从[DB_A].[dbo].[table]中选择col1,col2”。我需要它做的是“从[DB_B].[dbo].[Table]中选择col1和col2”。您使用的是本机驱动程序、ODBC还是OLEDB?我通常使用本机驱动程序。如果切换时遇到问题,我将创建一个指向正确位置的临时ODBC数据源。我将把位置设置为ODBC数据源,然后返回到具有正确模式所有者的本机驱动程序。最终解决了这个问题。。。新连接中指定的用户id似乎不能访问DB_A,以便Crystal将查询更改为从DB_B表中选择。只有这样Crystal才会更改Sql查询中的数据库名称。但是,如果您这样做,则所有新的数据源字段都将采用字符串格式。如果您在Visual Studio中工作,执行此操作后,您可能需要保存、关闭并重新打开Visual Studio。在我做了这个更新(最初效果很好)大约20分钟后,我刚刚遇到VS2010崩溃。。但当它崩溃时。。。。我得到“由于以下错误而无法加载数据集:对象引用未设置为实例o”