首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Firebird触发器中创建消息提示

在Firebird触发器中创建消息提示
EN

Stack Overflow用户
提问于 2020-09-17 06:52:54
回答 1查看 70关注 0票数 0

是否可以在触发器中提示用户一条错误消息?

例如,如果用户没有在字段中输入值,那么它会提示他们,并且不保存记录。

我不知道错误消息是否是正确的术语。这可能是例外。

EN

回答 1

Stack Overflow用户

发布于 2020-09-17 11:50:10

假设Firebird的版本至少是2.5,简短的答案是-是。

您只需创建一个简单的异常,如下所示

代码语言:javascript
复制
create exception my_universal_exception 'This is the default exception text';

然后在触发器中使用它:

代码语言:javascript
复制
ALTER TRIGGER A0 ACTIVE
BEFORE insert POSITION 0
as
begin
  if (new.id is null)
    then exception my_universal_exception 'You should specify some value for ID.';
end

就我个人而言,我使用了一种更复杂的方法。我有一个专用的过程,它接受文本参数,默认情况下会引发异常,但取决于其他用户变量,它会将异常写入日志记录表,或者执行任何其他有用的操作:

代码语言:javascript
复制
CREATE PROCEDURE SHOW_ERROR (
    ERROR_TEXT varchar(256) )
AS
begin
  if ((select rdb$get_context('USER_SESSION', 'SILENT_MODE') from rdb$database) is not null)
    then insert into s_log(log_message)values(:error_text);
    else exception my_universal_exception :error_text;
end

因此,稍后我在触发器中使用它,如下所示:

代码语言:javascript
复制
  if (new.id is null)
    then execute procedure show_error('You should specify some value for ID.');

还请注意,从Firebird 3.0开始,您还可以在exceptions as described here中使用参数。

当然,您的客户端软件应该相应地处理此类错误,但这超出了这个问题的范围。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63928946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档