2017-03-01 2 views
0

OpenOffice 4.1.3でコマンドラインからトリガを挿入しようとしていますが、この設定を使用しています: ツール - >オプション - > OpenOffice - - > Javaの - > "使用..." にチェック - >クラスパスは - パッケージを追加> - >「私はここからダウンロードしていることから、ダウンロードしたファイル(のhsqldb.jarは): http://www.access2base.com/access2base.htmlフィールドを更新するためにトリガを挿入しようとしています。

SoがしAccess2Base

CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes" 
FOR EACH ROW 
BEGIN ATOMIC 
update "Costes" set "importenoiva" = (NEW."importe"); 
END 

を、それは私に次のエラーを与える:..これは私が実行しようとしているコードがある

1: Unexpected end of command: BEGIN in statement [CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes" 
FOR EACH ROW 
BEGIN] 

PS:私がこのコードを実行します。ツール - > SQL ....

PS2:私は、MySQLで同様の問題があったが、私は

を//区切り文字を変更することがあり、それを解決しました

サンプルコード:

CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes" 
FOR EACH ROW 
BEGIN ATOMIC 
update "Costes" set "importenoiva" = (NEW."importe"); 
END// 

ありがとうございました!


this is where I'm putting the new hsqldb folder, but I had the same error, i tried to select this folder, the super folder, the super/super folder and tried to to just put the hsqldb/lib/hsqldb.jar file as package, but still nothing

私は新しいHSQLDBフォルダを入れているが、私は同じエラーを持っていたところがあり、私はこのフォルダ、スーパーフォルダ、スーパー/スーパーフォルダを選択しようとしたとしようとしましたhsqldb/lib/hsqldb.jarファイルをパッケージにするだけですが、何もしません。

答えて

1

HSQLDB JARのバージョンを確認し、バージョン2.20より後であることを確認してください。トリガーの定義には、REFERENCINGと追加の行が必要です。

"Costes"テーブルのすべての行が更新されています。 UPDATEステートメントには、更新する行のみを選択する条件付きのWHERE句が必要です。 「TRIGGER「T1」を作成、更新ON後:

CREATE TRIGGER "t1" AFTER UPDATE ON "DesgloseCostes" 
REFERENCING NEW ROW AS NEWROW 
FOR EACH ROW 
BEGIN ATOMIC 
update "Costes" set "importenoiva" = NEWROW."importe" WHERE ... ; 
END// 
+0

私は私のコードは、私はそれが動作するかどうかを確認するために、1つのトリガを入れてtriyingましたが、私はまだあなたのコードで同じエラーが出る「コステス」内のすべての行を更新している知っていますDesgloseCostes " NEWROW AS NEWROW AS NEWROW 各行に対して BEGIN ATOMIC 更新" Costes "は" importenoiva "= NEWROW。" importe "; END // –

+0

もう一度、今私はhsqldbバージョンのOpenOfficeを更新しようとしていますが、何か間違ったことをしていると思います:( –

+1

"外部" HSQLDBデータベースを使用する必要があります。 ://forum.openoffice.org/en/forum/viewtopic.php?p = 162653#p162653 – fredt

関連する問題