Skip to Content
0
May 07, 2020 at 03:44 AM

PDF白紙化不具合と「出力時にデータベースを照合」オプションの設定

135 Views Last edit May 08, 2020 at 03:17 AM 2 rev

いつも参考にさせていただいております。
C#.NETアプリケーションでCrystal Reports for Visual StudioのSupport Pack17を使用しています。
作成したExeファイルはタスクスケジューラからBatファイル経由で定期的に実行され
SQLServer上のQueueテーブルに登録された情報を元に、登録数分のPDFをループ処理で
連続作成するバッチアプリケーションです。
アプリケーションの作りとしてはCrystal reportsのデータベースフィールドとDBを直接つないでデータを
取得するのではなく、VisualStudioのDataSetに基づいてデータを取得・編集し、Crystal reportsの
データベースフィールドに値を渡す作りとなっています。

今回、同居するシステムのバージョンアップに伴い.Net4.5.2に上げてビルドしなおし、
利用を再開しましたが以下の3種類の問題が頻繁に発生するようになりました。(ビルド以外何も変更していない)
※1件のPDF生成では発生せず、3件以上連続生成する場合に発生する。

①PDFの白紙化

 出力したPDFにDBから取得した情報が出力されない。(クリスタルレポートへ値を渡す直前にログ出力した結果、DBの値はDataSetに正常に格納されている。また、罫線などは正常に出力されている。)
②PDF出力時にエラーとなりPDFが出力されない。

 【エラー】
  System.Runtime.InteropServices.COMException: 無効な引数が指定されています。 データベースからデータを取得できませんでした。
  ファイル temp_65c22671-2f03-4e96-b0cd-b143f7ca2545 9748_7212_{D97CA6CF-C00D-421E-A2C2-D91F850F3347}.rpt のエラー:
  データベースの引数が無効です。
③ジョブが異常終了し、Windowsのイベントログに以下が記録される。
 The process was failed with code=-1073741819.

原因はわかっていませんが、データベースフィールドのオプション設定「出力時にデータベースを照合」にチェックが

入っており、このチェックを外しビルドし直したところ上記の①~③の問題は発生しなくなりました。
以下の記事等を参照しましたが原因等分かっていません。
https://answers.sap.com/questions/7407380/verify-on-every-print.html

問題の発生原因と何故改善したが分からない為、「出力時にデータベースを照合」のチェックを外す対応を
本対策として良いか判断できず困っております。

DataSetからCrystal Reportに値を渡す構造における「出力時にデータベースを照合」のチェック有無による影響に関してどのような差があるのか教えてください。