0
create trigger tr_buFile_fileid for BUFiles before insert as 
begin
IF (NEW.FileID IS NULL) THEN NEW.FileID = GEN_ID(FileID_generator, 1);
end
create trigger tr_buFile_insert for BUFiles after insert as 
begin 
update miscitems set TotalSize = TotalSize + new.BuFileSize;
end

create trigger tr_buFile_update for BUFiles after update as 
begin 
if (new.DeletionTime < '9223372036854775807' and new.DeletionTime != old.DeletionTime) then
update miscitems set TotalSize = TotalSize - old.BuFileSize;
end

firebird データベースに 3 つのトリガーを作成しました。私のアプリケーションは odbc 接続を使用してデータベースを操作します。問題は、BuFiles テーブルに挿入を行うと、2 番目のトリガー (tr_buFile_insert) が機能しないことです。ただし、InterBase/Firebird の SQL Manager でテストすると、このトリガーは機能します。

どんな助けでも大歓迎です。

ありがとう、石平

4

1 に答える 1

1

あなたのトリガーは問題ないようです。application から別のデータベースに接続していると思います。これをチェックしてください 。トリガーステータスが「ACTIVE」であることも確認してください

于 2013-05-16T11:59:05.470 に答える