execute
コーディング例にはありませんが、executeというメソッドもあります。
推測するに、戻り値の無いSQLが発行できそうです。
という事で、QCMDEXCが実行できるか試してみました。
OVRDBFが実行できれば、メンバーが利用できますね。
まず、物理ファイル:MEMBERにメンバー(ADDMEMBER)を追加します。
(ちょっとネーミングがややこしくなってしまいました。)
ADDPFM FILE(MYLIB/MEMBER) MBR(ADDMEMBER) TEXT('メンバー追加')
SQLexecute.js
app.get("/execute", function (req, res, next) {
let execstmt = "CALL QCMDEXC('OVRDBF FILE(MEMBER) TOFILE(MYLIB/MEMBER) MBR(ADDMEMBER) OVRSCOPE(*JOB)',70)";
let sqlstmt = "select * from member";
pool.execute(execstmt).then(
function (result) {
pool.query(sqlstmt).then(
function (result){
res.json(result);
}
)
});
});
OVRDBFが上手く行っていないようです。
WRKACTJOBで確認するとQZDASOINITが二つ存在していて、OVRDBFとSQLが別のジョブになっていました。
前回試したトランザクションは同じpoolを使うようなので、そちらで書き直してみました。
SQLexecute.js
app.get("/execute2", function (req, res, next) {
pool.transaction(function (tran) {
return tran.execute("CALL QCMDEXC('OVRDBF FILE(MEMBER) TOFILE(MYLIB/MEMBER) MBR(ADDMEMBER) OVRSCOPE(*JOB)',70)"
).then(function () {
return tran.query("select * from member").then(
function (result)
{
res.send(result);
}
)});
});
});
今度は上手く行きました。