経緯
Windows10内にある、Microsoft SQL Server 2012にあるデータを取得してFTPSでputして欲しいという要件があった。
SQL Serverなんか触ったのは、おそらく20年前くらい。
簡単な要件だったので、Nodejsで作ることにした。
その時のメモ。
#SQL Driver
Windows10内のNodejsの環境が構築されているものとする。
SQL Serverへは、ODBC経由でいいはずだけど、調べてみると以下のページを発見。
ひとつのプログラムだけで実行するので、ローカルインストール
npm install tedious
#接続
接続ユーザはすでに作成されているものとする。
const Connection = require('tedious').Connection;
const config = {
server:DB_HOST,
userName:DB_USER,
password:DB_PASS,
options:{
database:DB_NAME,
encrypt:false
}
};
const connection = new Connection(config);
connection.on('connect', function(err) {
if ( err ) {
// ERROR - SQL Serer connect error.
console.log('SQL Serer connect error.(' + err + ')');
// 終了
process.exit();
}
// Info - SQL Server connected.
console.log('SQL Server connected.');
// 接続したらクエリ実行
execute();
});
#実行
const Request = require('tedious').Request;
function execute() {
// Query Request
let sql = getQuery();
const request = new Request(sql, function(err, rows) {
if ( err ) {
// ERROR - Query request error.
console.log('Query request error.(' + err + '');
process.exit();
}
// INFO - Run query. sql
console.log('Run query. ' + sql);
// close
connection.close();
});
request.on('row', function(columns) {
// 実行結果が返ってくる
....... 処理
})
// exec
connection.execSql(request);
}
function getQuery() {
// SQLを返す
return sql;
}