- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用NVM安装了nodejs,以便能够使用不同的版本。
然后按照these instructions安装Firebird .
后来我按照this tutorial底部的说明进行操作捕获事件。
基本上它添加了一个触发“post_event”的触发器。
SQL> SET TERM !! ;
SQL> CREATE TRIGGER new_employee_event FOR employee
CON> ACTIVE
CON> AFTER UPDATE
CON> AS
CON> BEGIN
CON> POST_EVENT 'update_employee';
CON> END!!
SQL> SET TERM ; !!
这是我用于监听事件的代码:
var fb = require("firebird");
var http=require('http');
var sys=require('sys');
var con = fb.createConnection();
con.connectSync('localhost:/var/lib/firebird/2.5/data/employee.fdb','sysdba','masterkey','');
con.addFBevent("update_employee");
con.on("fbevent",function(event,count){
var rows = null;
rows = con.querySync("select * from EMPLOYEE WHERE EMP_NO = 145;").fetchSync(1,true);
con.commitSync();
console.log("An Employee record has been updated");
console.log(rows);
});
WaitForFinish(function(){ return finished; },
function(){
con.disconnect();
CleanUp();
test.done();
}, 20000);
var finished = false;
function WaitForFinish(finished,clean,timeout){
var timedout = false;
var tid = setTimeout(function(){
timedout = true;
},timeout);
process.nextTick(function loop(){
if(finished.call()||timedout){
clearTimeout(tid);
clean.call();
}
else process.nextTick(loop);
});
}
这是我用来生成事件的代码。
var fb = require("firebird");
sys = require("sys");
var con = fb.createConnection();
con.connectSync('localhost:/var/lib/firebird/2.5/data/employee.fdb','SYSDBA','masterkey','');
con.querySync("UPDATE EMPLOYEE SET SALARY = 32004 WHERE EMP_NO = 145 ");
con.commitSync();
var res = con.querySync("select * from EMPLOYEE WHERE EMP_NO = 145" );
var rows = res.fetchSync("all",true);
console.log(sys.inspect(rows));
我的 Node 版本是:
node -v
v0.12.13
我的操作系统是:
uname -r
4.2.0-35-generic
问题是根本行不通。没有错误。
我不知道还能做什么。我需要捕捉项目的事件。
最佳答案
在 Firebird 中,连接需要按名称订阅事件,没有订阅意味着没有通知。您正在注册事件 update_employee
,而从触发器发布的事件是 employee_updated
。因此您永远不会收到通知,因为没有名为 update_employee
的事件。
您需要将代码更改为
con.addFBevent("employee_updated"); // <-- event name used in trigger
con.on("fbevent", function(event,count){
// ... your event handling
});
据我所知 the documentation ,只有一个事件处理函数,所以如果要处理多个事件,需要根据event
(即事件的名称)添加逻辑。
关于node.js - 使用 Nodejs 捕获事件 firebird 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37096917/
我有一个关于 Firebird 客户端和服务器版本的问题。我知道由于 ODS 更改,数据库文件必须与 Firebird 服务器匹配。即 Firebird 建议在服务器版本 2.5.1 和 2.5.2
是否可以使用相同 Firebird 版本的 Firebird Embedded 打开 Firebird 数据库文件?当然,我知道我不能同时通过 FB Embedded 和 FB 打开同一个文件。但在关
首先我读到了这个问题: Firebird database replication 但我不想复制...我只想将数据库上已更改的数据添加到我们的主数据库中。有什么想法吗? 最佳答案 AFAICT 这也是
我同时使用 Firebird 嵌入式和 Firebird 服务器,有时我需要使用如下程序重新索引表: CREATE PROCEDURE MAINTENANCE_SELECTIVITY ASDECLAR
firebird 是否支持事务模式更改?在我看来,MySQL 没有(我说得对吗?)。 最佳答案 我打算发布一个简单的"is",但 Stack Overflow 不接受少于 15 个字符的答案。简而言之
我正在尝试将 Firebird 2.5.1 迁移到 Firebird 3.0 做了什么: 备份 Firebird 2.5.1 在 Firebird 3 上恢复 问题是并不是所有的表都被迁移了;过程、触
我的意思是,即使数据库为空,您也必须删除 varchar(50) 字段并重新创建它以使其成为 varchar(30)。更别说约束了…… 这是非常令人沮丧的。我是 SYSDBA,Firebird 使非常
当我尝试更改 Firebird 中不同所有者的表时,出现此错误: unsuccessful metadata update MODIFY RDB$RELATION_FIELDS failed no p
我有下表 create table LIST_PIPE_TABLE ( ID INT, ITEM VARCHAR(4000), IS_FOLDER VARCHAR
有没有一种快速的方法来列出为数据库定义的所有实际上没有被任何字段使用的 Firebird 域?我有一个包含许多表和许多域的大型数据库,似乎其中很多不再使用,所以我想是时候进行清理了! 我认为这可以通过
我有一个表 t,其中一列是 int 类型,有几行。 我想循环它。当然,我可以为此编写一个选择查询。不过我是学程序的,写了个程序, set term ^; create procedure qt ret
我正在尝试使用 FlameRobin 打开一个 .fdb (Firebird) 数据库,但它给了我以下错误消息: *** IBPP::SQLException *** Context: Databas
我有一个旧版 Firebird(版本 2.5.2)数据库,并使用 FlameRobin(版本 0.0.2.1851)来检查它。 我已在 RDB$RELATION_CONSTRAINTS 表上运行以下查
我是这里的 Firebird 新手。我正在尝试从 ASP.Net 应用程序使用 Firebird Embedded。一切都连接正常,但我遇到了列名称长度的问题。我正在尝试创建一个名为“Orchard_
刚刚开始将 Firebird 与 Delphi XE 结合使用。需要一些从客户端计算机连接到服务器的帮助。 我可以 ping 服务器,因此存在连接。但是当我从 firebird/bin 文件夹运行 i
我在 Ubuntu 中打开命令提示符,然后登录 Firebird,如下所示: $ isql-fb SQL> connect "localhost:/var/lib/firebird/2.5/data/
已下载 Firebird 数据库 Firebird-3.0.3.32900-0_x64_pdb.zip。解压文件夹install_service.bat并能够访问EMPLOYEE.FDB数据库。无需
如何在 Firebird 中将多个数据库合并为一个?我尝试了 fbexport,但没有在 Ubuntu 上编译 fbexport,我不断收到此错误。 g++ -pthread -lfbclient -
我想查询以下内容:所有表及其列和数据类型 到目前为止,我从 http://www.firebirdfaq.org/faq174/ 得到了这个 select f.rdb$relation_name, f
我有一个接近 4GB 文件系统限制大小的 firebird 数据库。如何将单个数据库文件拆分为多个文件? 最佳答案 对于单个文件数据库,Firebird 数据库可以跨越数 TB。 InterBase
我是一名优秀的程序员,十分优秀!