我正在尝试在表中插入新记录,但是出了点问题,并且记录没有插入表中。
我实际上是在使用new/endnew
来设置对象的属性。
我知道,如果我使用业务组件,则可以使用.GetMessages()
接收错误消息,但是如何使用new/endnew
接收错误消息?有办法吗?
答案 0 :(得分:1)
首先请注意,使用业务组件执行这些任务将强制执行其中定义的业务规则,检查外键并更新相关的冗余公式,而使用new
/ endnew
则是类似的到原始数据库插入。
您可以使用error_handler
command / rule来捕获数据库错误(并采取措施)
以下是使用error_handler
命令的示例:
Error_handler('OnDBError')
// the code that generates a violation
Sub 'OnDBError'
msg(format(!'DBError: Code:%1 - %2', &gxDBErr, &gxDBTxt), status)
msg(format(!'Op: %1 - Table: %2', &gxOper, &gxErrTbl), status)
&gxErrOpt = 3
EndSub
如果要创建日志文件,可以激活GeneXus的日志记录功能(请参阅所选生成器的“属性”标签中的Logging
部分)
答案 1 :(得分:0)
您要保存的记录,是来自默认数据存储表还是数据视图表?
也许数据视图定义不正确。
其他可尝试的东西:
验证主键定义是否正确(将数据消息发送到 保存)
使用“当重复时”显示消息,以防记录 那个键就存在了。