使用Nodejs连接到SQL Server
经纬
有一个需求,需要从 Windows10 中的 Microsoft SQL Server 2012 中获取数据,并通过 FTPS 进行传输。我大概是在大约 20 年前接触过 SQL Server。
因为要求很简单,所以我决定使用 Nodejs 来完成。
这是当时的记录。
SQL驱动程序
假设已经在Windows 10上搭建了Node.js环境。
对于访问SQL Server,应该可以通过ODBC方式,但在查找过程中发现了以下页面。
SQL Server 的 Node.js 驱动程序
繁琐 – 概述
只需要一个程序来执行,因此进行本地安装。
npm install tedious
连接 (jiēchù)
假定已经存在连接用户。
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;
}