Ich habe nodejs mit NVM installiert, um verschiedene Versionen verwenden zu können.Ereignisse abfangen firebird mit nodejs funktioniert nicht
Und dann installiert Firebird in Übereinstimmung mit these instructions.
Später folgte ich den Anweisungen auf der Unterseite von this tutorial, um Ereignisse abzufangen.
Im Grunde fügt es einen Trigger hinzu, der das "post_event" macht.
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 ; !!
Hier ist der Code, den ich für hören Ereignisse verwenden:
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);
});
}
Und das ist der Code, den ich ein Ereignis zu erzeugen, verwenden.
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));
Meine Knoten Version ist:
node -v
v0.12.13
Mein OS ist:
uname -r
4.2.0-35-generic
Das Problem ist, dass einfach nicht funktioniert. Kein Fehler.
Ich weiß nicht mehr zu tun. Ich muss Ereignisse für ein Projekt abfangen.
Danke für die Beantwortung meiner Frage. Der Fehler, den Sie erwähnen, ist ein typischer Fehler beim Ausschneiden und Einfügen, als ich diesen Beitrag erstellt habe. Ich bearbeitet die Frage an jemand anderen nicht den gleichen Fehler zu beobachten. Vielen Dank. –
@AlePaciotti also, haben Sie immer noch das Problem, auch nach dem Ändern des Ereignisnamens? –
Ja @MarkRotteveel. Dasselbe Problem. –