Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何在Firebird 2.5中创建脚本日志记录过程?_Logging_Firebird_Firebird2.5 - Fatal编程技术网

Logging 如何在Firebird 2.5中创建脚本日志记录过程?

Logging 如何在Firebird 2.5中创建脚本日志记录过程?,logging,firebird,firebird2.5,Logging,Firebird,Firebird2.5,我需要从另一个过程调用记录器过程(“p_ADD_to_LOG”),以了解脚本是如何执行的 我的记录器看起来像: create PROCEDURE p_ADD_TO_LOG ( IN_MESSAGE Varchar(1024) NOT NULL DEFAULT 'EMPTY' ) AS BEGIN INSERT INTO tmp_logging (ID, mess) VALUES (gen_id(id_gen, 1), :IN_MESSAGE) ; suspend; END 问题是,如果

我需要从另一个过程调用记录器过程(“p_ADD_to_LOG”),以了解脚本是如何执行的

我的记录器看起来像:

create PROCEDURE p_ADD_TO_LOG (
 IN_MESSAGE Varchar(1024) NOT NULL DEFAULT 'EMPTY'
)

AS
BEGIN
 INSERT INTO tmp_logging (ID, mess)
 VALUES (gen_id(id_gen, 1), :IN_MESSAGE) ;
suspend;
END
问题是,如果在调用
p\u ADD\u TO\u LOG
的执行过程中,发生错误或执行的过程不会提交,则
in\u消息
不会写入
tmp\u日志

这似乎是因为这些程序是在同一个事务中执行的


如何更改“p_ADD_to_LOG”,以便在事务未确认或调用的过程中发生错误时写入日志?

我刚刚在过程中的自治事务DO中添加了

create PROCEDURE p_ADD_TO_LOG (
 IN_MESSAGE Varchar(1024) NOT NULL DEFAULT 'EMPTY'
)
AS
BEGIN
IN AUTONOMOUS TRANSACTION DO
 INSERT INTO tmp_logging (ID, mess)
 VALUES (gen_id(id_gen, 1), :IN_MESSAGE) ;
suspend;
END

它是有效的。

我刚刚在自治事务中添加了
,在程序中添加了

create PROCEDURE p_ADD_TO_LOG (
 IN_MESSAGE Varchar(1024) NOT NULL DEFAULT 'EMPTY'
)
AS
BEGIN
IN AUTONOMOUS TRANSACTION DO
 INSERT INTO tmp_logging (ID, mess)
 VALUES (gen_id(id_gen, 1), :IN_MESSAGE) ;
suspend;
END

在自治事务中,<>代码> 将帮助我。如果您设法在自动事务< /代码>中使用<代码>解决您的问题,请考虑用解决方案的详细信息发布您自己的答案。它也可以帮助其他人。在自治事务中,<>代码> <代码>将帮助我。如果您在自动事务< /代码>中使用<代码>解决了您的问题,请考虑用解决方案的详细信息发布您自己的答案。它也可能帮助其他人。