Btrieve access2.0 vb4(16ビット) を使用しているシステムにおいて
複数ユーザーからmdbにアタッチしている状態で印刷すると
一般保護違反が発生します。
一応 access2.0とvb4 のアップデートはしております。
頻繁に発生するのでなにか解決策知っておられれば教えてください。
まず・・・16ビット版とのこと・・・
OSは、Win95ですか?
排他制御は持っているものの、16ビット版では、マルチアクセスの
強固ではありませんので、かなり無茶な使い方です。
また当然ライセンスサポートも切れていますので、メーカーも対応
のしようがないと思います。
ACCESSの問題もあろうかと思いますが、クリスタルレポート側の
問題もあるので、なんとも言えません。32ビット化できないので
しょうか?
あと、私が過去やった方法では・・・
ACCESSとクリスタルレポートの役目を受け持つサーバータイプアプリ
と、クライアントアプリに分離し、その間をソケット通信で繋ぎ、あ
くまでACCESSとクリスタルレポートをキックするアプリは1ユーザー
しかいないと言う状態を作る・・・
難易度が高い構造ですので、その環境を移行できないのであれば、
チャレンジして頂くしかないと思いますが・・・
ご検討下さい。
以上。
> 一般保護違反が発生します。
昔聞いた事なので曖昧で、また、今回の件と関係あるかどうかは分かりませんが、
複数の帳票を出す場合でも、クリスタルレポートコントロールを使うのは、
プロジェクト内で1つだけにした方が良い、という話を耳にしました。
つまり、印刷を行うフォームが複数存在していたとしても、各画面にコントロールを
貼るのではなく、メイン画面となるフォームにだけ、クリスタルレポート
コントロールを1つ貼っておくに留める、という事だそうです。
で、他の画面等からは、そのコントロールを共有する形で出力させる、と。
> 一応 access2.0とvb4 のアップデートはしております。
VB4(32)のクリスタルレポートコントロールには不具合があって、そのための
修正差分が提供されていました。(これは、VB4のUpdate2とは別物です)
ただ、16bit版のカスタムコントロール(vbx)の場合にも、
そのような差分が提供されているかどうかは存じません。
一度、メーカーサポートに問い合わせて見ては如何でしょうか?
ただし、クリスタルレポートのサポート先は、マイクロソフト社では
無いので、その点はご注意下さい。
# とはいえ、サポート先の移転や会社名の変更などがあったので、VB4版の
# クリスタルレポートのサポート先は、私自身も把握していなかったり…。(汗)
## 多分、エージテック社か、クリスタルディシジョンズ社
## (旧:日本シーゲイトソフトウェア社)あたりだとは思うのだけれども。
ありがとうございます。
修正パッチ探してみます。
ツイート | ![]() |