2009-02-27 3 views
2

Я медленно обучения SQL и как использовать форму строитель 6. Ситуация у меня есть простая таблица с именем «игроков» в пределах таблицы У меня есть три колонки:Как вставить запись с помощью Form Builder и PL/SQL?

  • player_no (первичный ключ)
  • Позиция
  • цели

в пределах вида строителя 6 Я создал очень простую форму, используя эти три поля. Форма называется «КОМАНДА». У подножия формы у меня есть кнопка с надписью «Добавить». Цель состоит в том, чтобы пользователь мог ввести player_no, позицию и цели, а затем нажать «Добавить». Затем эта информация должна войти в мой стол.

Все попытки до сих пор с треском провалились. Я установил триггер на кнопке (WHEN_MOUSE_CLICK). Я тогда поступил следующий код:

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

Для тестирования его я только использую поле один (player_no). Затем это компилируется без ошибок, когда я запускаю форму и вхожу в player_no и нажимаю кнопку. Я получаю следующую ошибку в строке состояния:

frm-40735: КОГДА-МЫШЬ-КЛИК запускает необработанное исключение ORA-01400

Я делаю что-то ужасно неправильно? Я очень много нового для SQL и Form Builder, поэтому любая помощь будет очень признательна.

ответ

2

ORA-01400: cannot insert Null похоже, что одно из ваших полей не является нулевым, и вы опускаете их на вставке. или значение: TEAM.player_no имеет значение null во время вставки.

Кроме того, где-то из сети:

FRM-40735: ON-ВСТАВКИ триггер поднял необработанных Мы имели подобную проблему так 11.5.9. Мы очищаем кэш Jinitiator и временные интернет-файлы (инструменты> интернет-варианты, а затем под временными интернет-файлами ясная кнопка ). Кажется, работает.

1

Одним из преимуществ использования Form Builder является то, что вы почти всегда не нужно написать DML себя ЗАЯВЛЕНИЕ.

Просто сделайте блок на основе таблицы - тогда пользователь может добавлять и изменять столько записей, сколько захочет, а затем, когда они сохраняют (т.е. COMMIT), время выполнения Forms автоматически определяет, какие INSERT и UPDATE необходимы для сохранения перемены.