8.0.1.0で作成された何百ものレポートがあります(私は古いと思います)。データベースの場所を変更すると所有者スキーマがなくなります
これらのレポートを実行するためにVisual Studio 2010 C#アプリケーションを作成しました。それはWindowsアプリケーションです。 Web Appにいくつか問題があった。
レポートはすべてPROD環境で保存されます。
私たちはTEST環境で作業しています。
私たちはOracle環境を使用しており、すべてのレポートはOracleサーバー接続を使用しています。
C#でレポートを実行すると、すべてのデータベースの場所がTEST環境に変更されます。これが起こると、「所有者」(スキーマ)情報が削除されます。レポートは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を設定しようとしたが、プログラムがロックアップします。だから何をすべきか分からない。 document
がCrystalDecisions.CrystalReports.Engine.ReportDocument
ある
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);
:
942エラーのメッセージは何ですか? –
ビュー/テーブルが見つかりません。これは、スキーマが削除されているため、テーブルを見つける場所がわからないためです。 – madkow