首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水晶报告9数据库连接问题

水晶报告9数据库连接问题
EN

Stack Overflow用户
提问于 2009-06-09 00:54:20
回答 5查看 10.8K关注 0票数 4

Crystal Reports 9似乎将数据库连接信息保存在报表文件本身中。我有一个改变这种联系的问题。我与一组开发人员一起工作,他们都在同一台服务器上拥有自己的数据库副本。我们使用到数据库的可信连接。当我们需要更改一个水晶报告,我们点击闪电执行报告,水晶不要求登录信息到数据库。实际上,它最终连接到上次保存报表时使用的最后一个数据库。

我们想出了两个解决办法:

  1. 取水晶认为应该离线连接的数据库,然后水晶将请求登录信息。
  2. 删除正在更改水晶的用户名的权限。

这些都不是我们所能接受的。有人知道如何从报表文件中删除水晶连接吗?

我们已经尝试过注销数据资源的位置和数据库专家中的所有设置。

更新

我还没有找到适合我情况的解决方案。但是我们最新的解决方法是加载一个水晶报告,在您点击闪电(运行报告对数据库)之前,拔掉您的以太网电缆。然后,当Crystal无法找到数据库时,将以太网电缆插回,它将允许您选择不同的数据库服务器和名称。

EN

回答 5

Stack Overflow用户

发布于 2009-06-09 11:29:02

您可以在特定于用户的位置使用.dsn数据源文件(即每个用户使用相同的路径,但使用不同的物理位置),并将水晶报告指向该位置。例如,在每个人的C驱动器: C:\DSNs\db.dsn上,或者在映射到每个用户不同位置的网络驱动器上。

您可以在MSDN上获得更多关于.dsn文件的信息:http://msdn.microsoft.com/en-us/library/ms710900(VS.85).aspx

票数 1
EN

Stack Overflow用户

发布于 2009-06-09 11:45:29

我们正在使用这种方式(但是使用sql身份验证):

打开report

  • database -登录server

  • database - set数据源location

  • refresh/preview

您可以禁用域用户对dev数据库的访问,也应该有所帮助:)

票数 1
EN

Stack Overflow用户

发布于 2009-09-01 21:46:59

我可能回答得太晚了,没有机会得到赏金,但无论如何我还是会给出答案的。

如果您是直接运行水晶报告,或者使用水晶企业,那么我能想到的唯一方法就是使用dsn,就像paulmorriss提到的那样。这样做的缺点是,您将使用ODBC,我认为它通常比较慢,并且被认为是过时的。

如果在应用程序中使用此方法,则只需在代码中更改数据库连接设置即可。然后,每个人都可以根据自己的测试数据库开发报告,并且您可以在运行时将其指向生产数据库(假设开发人员数据库是最新的,并且包含与生产数据库相同的字段)。

要做到这一点,您应该能够使用如下函数:

代码语言:javascript
复制
private void SetDBLogonForReport(CrystalDecisions.Shared.ConnectionInfo connectionInfo, CrystalDecisions.CrystalReports.Engine.ReportDocument reportDocument)
{
    CrystalDecisions.CrystalReports.Engine.Tables tables = reportDocument.Database.Tables;

    foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
    {
        CrystalDecisions.Shared.TableLogOnInfo tableLogonInfo = table.LogOnInfo;

        tableLogonInfo.ConnectionInfo = connectionInfo;
        table.ApplyLogOnInfo(tableLogonInfo);
    }
}

为此,您需要传递一个ConnectionInfo对象(它将包含您的所有登录信息)和应用它的报表文档。希望这能有所帮助。

编辑--我不敢相信直到现在才想到的另一个选项是,如果您使用的是Server,您可以确保所有开发数据库的名称都相同,然后使用“。或“(本地)”用于服务器和集成安全性,使每个人有效地在本地拥有相同的连接信息。我认为这可能是最好的方法,假设您可以让所有的开发人员使用相同的设置。

编辑:)在阅读了其他答案的一些评论后,我想我可能误解了这个问题。除了没有权利编辑报告之外,我没有理由想到为什么你无法完成Arvo的回答中的步骤,但我假设您已经能够做出其他的更改,所以我对此表示怀疑。我假设,为了让报告对您一直在执行这些步骤的每个开发人员都有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/967710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档