2

我正在慢慢学习 SQL 以及如何使用表单构建器 6。情况是我在表中有一个名为“玩家”的简单表,我有三列:

  • 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: WHEN-MOUSE-CLICK 触发器引发未处理的异常 ORA-01400

我做错了什么可怕的事情吗?我对 SQL 和 Form Builder 非常陌生,因此将不胜感激任何帮助。

4

2 回答 2

2

ORA-01400: 无法插入 Null似乎您的某个字段不为空,并且您在插入时忽略了它们。或值 :TEAM.player_no 在插入期间为空。

另外,来自网络的某个地方:

FRM-40735:未处理的 ON-INSERT 触发器引发自 11.5.9 以来我们遇到了类似的问题。我们清除 Jinitiator 缓存和临时 Internet 文件(工具>Internet 选项,然后在临时 Internet 文件下的清除文件按钮)。似乎工作。

于 2009-02-27T17:22:53.987 回答
1

使用 Form Builder 的好处之一是您几乎总是不需要自己编写 DML 语句。

只需根据表创建块 - 然后用户可以添加和修改任意数量的记录,然后当他们保存(即 COMMIT)时,Forms 运行时会自动计算出保存更改所需的 INSERT 和 UPDATE。

于 2011-05-13T01:22:29.250 回答