Как я могу вставить запись, используя Form Builder и PL / SQL? - PullRequest
2 голосов
/ 27 февраля 2009

Я медленно изучаю SQL и узнаю, как использовать конструктор форм 6. Ситуация такова, что у меня есть простая таблица с именем 'Players' в таблице. У меня есть три столбца:

  • player_no (первичный ключ)
  • положение
  • цель

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

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

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

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

frm-40735: триггер WHEN-MOUSE-CLICK вызвал необработанное исключение ORA-01400

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

Ответы [ 2 ]

2 голосов
/ 27 февраля 2009

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

Также где-то из сети:

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

1 голос
/ 13 мая 2011

Одним из преимуществ использования Form Builder является то, что вы почти всегда не должны сами писать операторы DML.

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

...