初めて質問させていただきます。
VB6でTDBGridを使用しており
DBGridでデータを変更した際に
AfterUpdateイベントで、変更ログを別の場所に出力しています。
通常の動作は問題ないのですが
DBGrid内でデータを変更し、
他のセルに移動せずにウィンドウを閉じると、
データベースには更新が反映されますが
AfterUpdateイベントが発生せず、ログの出力ができません。
この場合に、
AfterUpdateイベントを発生させるか、
もしくはデータベースに反映させないようにしたいのですが
どのように対処したらいいでしょうか?
よろしくお願い致します。
有料コンポーネントの質問は、
ベンダ(この場合はGrapeCity社)に直接メールでもしたほうが確実です。
'既にサポート終了で門前払いなら自力で何とかするしかありませんが
AfterUpdateイベントが発生する前にフォームが閉じているのであれば、
QueryUnloadイベントなどでログを書くまでフォームを閉じないように
待たせるといいかもしれません。
それでもAfterUpdateイベントが発生しないのであれば、
バウンドモードではコミットのタイミングをユーザが制御しづらいので
アンバウンドモードで自前でトランザクション処理を行うとか、
'別案として、
'DBMS側のUPDATEトリガで代替する方法もあるでしょう。
直接関係無いかもしれませんが、
AfterUpdateイベント内でレコード操作や、
何やかんや複雑な処理を行うのではなく、
PostMsgで別イベントを発生させてそこで処理する方法
も紹介されていました。
ご参考まで。
https://www.grapecity.com/japan/support/search/faqcontent.asp?id=12712
ツイート | ![]() |