- ベストアンサー
リアルタイム処理について
SQLSERVER2000+VB6を用いて、在庫処理をしようと考えています。 在庫はリアルタイムに変動するものなので、 在庫をリアルタイムにモニターできるようにしたいと考えました。 しかし、当方データベースの知識が浅いもので実現方法がわかりません。 データベースが誰かによって更新された場合、それを知る方法はないのでしょうか? また、あるテーブルについて現在誰も更新していない(ロックされていない)ということを、こちらがロックする前に調べる方法はないでしょうか? 稚拙な問題かもしれませんが、ぜひアドバイス下さい。 よろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>データベースが誰かによって更新された場合、それを知る方法はないのでしょうか? あります。DBのトリガー(SQLServerにあったかは、ちょっと忘れました)で、やってもいいですし、VB側で処理をかませてもいいと思います。 やり方は色々ありますが、APLの基本的な処理方針になりますので、ビシッと決めておいたほうがいいと思います。 >あるテーブルについて現在誰も更新していない(ロックされていない)ということ を、こちらがロックする前に調べる方法はないでしょうか? これもあります。ディクショナリー(Oracle用語です、SQLServerでなんと言ったかは忘れました、ごめんなさい)を調べてもいいですし、逆に処理が終わるまでVBから明示的にロックしてもいいと思います。 在庫処理はおっしゃるとおりリアルタイムでの処理が要求される部分が多いので、中途半端な知識で作ってしまうと、在庫がボロボロになってシステムが崩壊したりしますので、きちんと知識のある方にヘルプをお願いしたほうが良いと思いますよ
その他の回答 (1)
- ymmasayan
- ベストアンサー率30% (2593/8599)
現在の状況がわかりませんので、一般的な回答だけ。 >データベースが誰かによって更新された場合、それを知る方法はないのでしょうか? 更新処理をかけるプログラム(VB?)のところにそういう処理を組み込めばいいでしょう。 >あるテーブルについて現在誰も更新していない(ロックされていない)ということ >を、こちらがロックする前に調べる方法はないでしょうか? その方法はあります。でも実際には大変なので、まず使ってみて、うまくいけば使い、けられたら あきらめて、あとで又やる。という方法が多いです。
お礼
丁寧なご回答、ありがとうございます。 なるほど、調べてみます。 在庫が変動した場合の在庫リストの更新方法ですが、トリガーが実行された場合、その実行をVB側で即座に感知することは可能なのでしょうか?それともVB側で何秒かおきに在庫リストを更新するべきなんでしょうか? 申し訳ありませんが、周りに専門家がいないもので困っています。 出来れば、アドバイスをお願いいたします。