2

SQLとフォームビルダー6の使用方法をゆっくりと学んでいます。状況は、3つの列があるテーブル内に「players」という名前の単純なテーブルがあることです。

  • player_no(主キー)
  • ポジション
  • 目標

Form Builder 6内で、これら3つのフィールドを使用して非常に単純なフォームを作成しました。フォームの名前は「TEAM」です。フォームの下部に「追加」というラベルの付いたボタンがあります。目標は、ユーザーがplayer_no、位置、目標を入力してから、[追加]をクリックすることです。この情報は私のテーブルに入れられます。

これまでのすべての試みは惨めに失敗しました。ボタン(WHEN_MOUSE_CLICK)にトリガーを設定しました。次に、次のコードを入力しました。

BEGIN
  INSERT INTO players ( player_no )
  VALUES ( :TEAM.player_no )
END

それをテストする目的で、私は1つの(player_no)フィールドのみを使用しています。フォームを実行してplayer_noと入力し、ボタンを押すと、これはまだエラーなしでコンパイルされ、ステータスバーに次のエラーが表示されます。

frm-40735:WHEN-MOUSE-CLICKトリガーで未処理の例外ORA-01400が発生しました

私はひどく間違ったことをしていますか?私はSQLとFormBuilderに非常に慣れていないので、助けていただければ幸いです。

4

2 に答える 2

2

ORA-01400: Null を挿入できません。フィールドの 1 つが null ではなく、挿入時にそれらを省略したようです。または値 :TEAM.player_no が挿入時に null です。

また、ウェブのどこかから:

FRM-40735: ON-INSERT トリガーが未処理で発生しました。11.5.9 以降、同様の問題が発生しています。Jinitiator のキャッシュとインターネット一時ファイルをクリアします ([ツール] > [インターネット オプション] を選択し、[インターネット一時ファイル] の下の [ファイルのクリア] ボタンをクリックします)。うまくいくようです。

于 2009-02-27T17:22:53.987 に答える
1

Form Builder を使用する利点の 1 つは、ほとんどの場合、DML ステートメントを自分で記述する必要がないことです。

テーブルに基づいてブロックを作成するだけです。その後、ユーザーは好きなだけレコードを追加および変更できます。保存すると (つまり、COMMIT)、変更を保存するために必要な INSERT と UPDATE が Forms ランタイムによって自動的に計算されます。

于 2011-05-13T01:22:29.250 に答える