首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将Crystal Report配置为使用DSN而不存储数据库名称?

问是否可以将Crystal Report配置为使用DSN而不存储数据库名称?
EN

Stack Overflow用户
提问于 2020-08-04 21:27:58
回答 2查看 206关注 0票数 0

DSN是非常有用的东西。我可以将DSN配置为指向开发数据库,当我完成开发时,只需将其重新配置为指向生产数据库,就完成了。不需要对我的程序或其配置进行任何更改。

但是,如果我使用ODBC连接创建Crystal Reports XI报表并指定特定的DSN,则CR会查找DSN以查找当前数据库的名称,并在其查询中使用该名称。如果我更改DSN指向的数据库,报告将使用旧数据库。例如,我有一个名为"WinCaps“的DSN,它指向一个名为"Anneal”的数据库。我创建了一个报告,并提供了一个类似"DSN=WinCaps;user=caps;passwd=xyz“的连接字符串(语法可能并不完美)。然后,系统提示我输入主机名、用户名和密码,所有这些都在DSN中提供,不应该是必需的。我保存了报告并将其关闭,然后将DSN更改为指向名为"Worthington HS Control“的数据库。我重新打开报告并选择“显示SQL查询”。我看到查询是从Anneal数据库中选择数据。有什么方法可以改变这种行为吗?最新版本的CR是否具有相同的行为方式?

EN

回答 2

Stack Overflow用户

发布于 2020-08-11 07:13:15

当您设置到服务器数据库的ODBC连接时,Crystal将要求提供数据库名称。据我所知,您可以在代码中或使用Crystal designer更改数据库名称。无法在DSN中进行更改并强制Crystal使用它。您可以使用像http://r-tag.com/Pages/CRDataSource.aspx这样的工具,它能够处理整个报告文件夹并完全覆盖连接。但是,这在极端情况下很有用,例如,当您需要用OLEDB连接替换ODBC时。您的场景非常简单,您不需要覆盖连接,只需更新数据库名称即可。这可以使用相同的代码来完成,即设置密码。您是否可以控制运行报告的应用程序?

票数 0
EN

Stack Overflow用户

发布于 2020-09-08 10:12:16

不同的ODBC连接将要求不同的设置。如果您为MS Access创建一个ODBC连接,并为MS SQL server创建一个ODBC连接,您将注意到,当您选择MS Access DSN Crystal designer时,它将只要求您输入用户名和密码,如果您为SQL server选择DSN,Crystal将要求您输入用户名、密码(您可以改用可信连接)和数据库名称。因此,当您使用Crystal reports更改到SQL Server的连接时,它会要求您提供数据库名称,并在查询中更新它。我的猜测是,在您的场景中,Postgres的DSN包含有关数据库的信息。SQL Server的DSN不包含有关数据库的信息。它具有默认数据库的设置,这是可选的。当您尝试在Crystal designer中使用此DSN时,它会要求您输入数据库名称。如果你在代码中改变连接,你需要自己处理数据库。

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

https://stackoverflow.com/questions/63247957

复制
相关文章

相似问题

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