Java
Node.js
AS400
IBMi
node-jt400

node-jt400を試してみた(SQL stream)

More than 1 year has passed since last update.

SQL stream

コーディング例ではCPYFのような動きをさせているので、同じようにコーディングしてみます。
コピー先の物理ファイルを作成します。
せっかくなので、少し変えました。
(LNAMEとFNAMEの属性を変更、TOKUTENをTENSUに変更、レコード様式を変える)

MYLIB/MEMBER2.PF
      ***************************************************************** 
      *    ファイルID       : MEMBER2                                 
      ***************************************************************** 
     A          R MEMBER2R                  TEXT(' メンバー ')          
      *                                                                 
     A            ID             3S 0       COLHDG(' ID ')            
     A            LNAME          6G         COLHDG(' 苗字 ')            
     A            FNAME         12J         COLHDG(' 名前 ')            
     A            PROF          40O         COLHDG(' プロフィール ')    
     A            TENSU          7P 3       COLHDG(' 点数 ')            
SQLstream.js
var jt400 = require("node-jt400");
var JSONStream = require("JSONStream");
var express = require("express");
var app = express();


var pool = jt400.pool({ host: '192.168.X.XXX', user: 'MYUSER', password: 'MYPASS' });

var server = app.listen(8888, function () {
    console.log("curl http://localhost:" + server.address().port + '/~');
});

app.get("/stream", function (req, res, next) {
  pool.createReadStream("select * from member") 
    .pipe(JSONStream.parse([true]))
    .pipe(pool.createWriteStream("insert into member2 (ID,FNAME,LNAME,PROF,TENSU) VALUES(?,?,?,?,?)"));
  res.send('end');
});

実行してみる。
nodejt05.png
実行結果
nodejt06.png

正しく苗字と名前が入れ替わってセットされました。