gpt4 book ai didi

c# - 更改数据库位置会删除所有者模式

转载 作者:太空狗 更新时间:2023-10-29 23:40:09 25 4
gpt4 key购买 nike

我们在 8.0.1.0 中创建了数百个报告(我知道它们很旧)。

我们创建了一个 Visual Studio 2010 C# 应用程序来运行这些报告。这是一个 Windows 应用程序。 Web 应用程序遇到了一些问题。

报告均保存在PROD环境下。

我们在测试环境中工作。

我们使用的是 Oracle 环境,所有报告都使用 Oracle Server 连接。

当我们通过 C# 运行报告时,我们继续将所有数据库位置更改为我们的测试环境。发生这种情况时,“所有者”(模式)信息将被丢弃。报告失败并出现 942 错误。

现在,如果我们不更改数据库,将其保留为 PROD,一切都会完美无缺。似乎通过更改数据库,模式信息被删除了。

任何想法。我一直在四处寻找,找不到解决方案。

代码片段:

connectionInfo.DatabaseName = "";
connectionInfo.ServerName = <SERVER>;
connectionInfo.UserID = <USER>;
connectionInfo.Password = <PWORD>;

foreach (Table crTable in crTables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = connectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);

// if you wish to change the schema name as well, you will need to set Location property as follows:
//crTable.Location = "<SCHEMA>." + crTable.Name;

}

我已尝试设置 crTable.Location,但程序已锁定。所以不确定该怎么做。

最佳答案

过去我们通过这样做成功地更改了连接参数:

CrystalDecisions.Shared.TableLogOnInfo info = document.Database.Tables[iTable].LogOnInfo.Clone() as CrystalDecisions.Shared.TableLogOnInfo;

info.ConnectionInfo.ServerName = <SERVER>;
info.ConnectionInfo.DatabaseName = "";
info.ConnectionInfo.UserID = <USER>;
info.ConnectionInfo.Password = <PASSWORD>;

document.Database.Tables[iTable].ApplyLogOnInfo(info);

其中 documentCrystalDecisions.CrystalReports.Engine.ReportDocument

关于c# - 更改数据库位置会删除所有者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com