TDBGrid使用時AfterUpdateイベントが発生しない


myst  2009-04-20 14:04:33  No: 141842  IP: 192.*.*.*

初めて質問させていただきます。

VB6でTDBGridを使用しており
DBGridでデータを変更した際に
AfterUpdateイベントで、変更ログを別の場所に出力しています。

通常の動作は問題ないのですが
DBGrid内でデータを変更し、
他のセルに移動せずにウィンドウを閉じると、
データベースには更新が反映されますが
AfterUpdateイベントが発生せず、ログの出力ができません。

この場合に、
AfterUpdateイベントを発生させるか、
もしくはデータベースに反映させないようにしたいのですが
どのように対処したらいいでしょうか?

よろしくお願い致します。

編集 削除
もげ  2009-04-21 16:55:20  No: 141843  IP: 192.*.*.*

有料コンポーネントの質問は、
ベンダ(この場合はGrapeCity社)に直接メールでもしたほうが確実です。
'既にサポート終了で門前払いなら自力で何とかするしかありませんが

AfterUpdateイベントが発生する前にフォームが閉じているのであれば、
QueryUnloadイベントなどでログを書くまでフォームを閉じないように
待たせるといいかもしれません。
それでもAfterUpdateイベントが発生しないのであれば、
バウンドモードではコミットのタイミングをユーザが制御しづらいので
アンバウンドモードで自前でトランザクション処理を行うとか、
'別案として、
'DBMS側のUPDATEトリガで代替する方法もあるでしょう。

直接関係無いかもしれませんが、
AfterUpdateイベント内でレコード操作や、
何やかんや複雑な処理を行うのではなく、
PostMsgで別イベントを発生させてそこで処理する方法
も紹介されていました。
ご参考まで。
https://www.grapecity.com/japan/support/search/faqcontent.asp?id=12712

編集 削除