Firebirdの構文/動作には錆びていますので、これは間違った質問かもしれません。Firebirdトリガーはアプリケーションから起動しませんが、DBツールでは動作します
私が遭遇したのは、3つのFirebird(バージョン2.5.4)トリガのうち2つがDelphi 6アプリケーションから起動しないということです。 TIBOQueryにリンクされたDevExグリッドからレコードが追加または削除されると、チェックするとレコードがデータベースで削除されますが、挿入後および削除後のトリガーはテーブルに対して実行されません。作業を行うトリガーは、挿入後または更新後のトリガーであり、別の表とは異なりますが、基本的に同じことです。この表の値が更新された場合は、別の表の列の値を更新します。
SQLマネージャLiteまたはEMS for Firebirdのテーブルからレコードを手動で追加または削除しようとすると、挿入後/削除後のトリガーが正常に動作し、必要に応じて動作します。だから彼らはデータベースツールではなく、アプリケーションで動作します。私はトリガーとテーブルのパーミッションをチェックして、それだけであるかどうかを確認しましたが、まだ運がありません。
トリガがアプリの外ではうまく動作するが、その内部ではうまくいかないことがあります。レコードが追加/削除されるのを見ることができるので、アプリケーションが正しいDBを使用していることがわかりますが、トリガーは発生しません(エラーはありませんが、他のテーブルへの更新は期待されません)。
データベースをチェックインしましたか?おそらく、あなたのアプリのクエリは自動的に自動的にリフレッシュされません。 –
あなたのDelphiアプリケーションはどのFirebirdドライバを使用していますか?また、Firebirdデータベースと同じマシンでInterbaseサーバサービスを実行していますか? – MartynA