元の質問は古く、@Tracker1が回答したTediousをラップする@PatrikŠimekが回答したnode-mssqlを使用するのが最善の方法です。
受け入れられた回答に記載されているWindows/Azureノード-sqlserverドライバーでは、前提条件のクレイジーなリストをインストールする必要があります:Visual C ++ 2010、SQL Serverネイティブクライアント11.0、python 2.7.x、そしておそらく64ビット用のWindows 7 SDKサーバ。私に言わせれば、これらすべてのGBのソフトウェアをWindowsServerにインストールする必要はありません。
あなたは本当に退屈なものを使いたいのです。しかし、また node-mssqlを使用してラップし、コーディングを非常に簡単にします。
2014年8月の更新
- 両方のモジュールは引き続きアクティブに保守されています。問題は非常に迅速かつ効率的に対応されます。
- どちらのモジュールもSQLServer2000-2014をサポートしています
- node-mssql1.0.1以降でサポートされるストリーミング
2015年2月の更新-2.x(stable、npm)
- 最新のTedious1.10に更新
- 約束
- オブジェクトストリームへのパイプリクエスト
- 詳細なSQLエラー
- トランザクションアボート処理
- 統合型チェック
- CLI
- マイナーな修正
これは明白な退屈です:
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
server: '192.168.1.212',
userName: 'test',
password: 'test'
};
var connection = new Connection(config);
connection.on('connect', function(err) {
executeStatement();
}
);
function executeStatement() {
request = new Request("select 42, 'hello world'", function(err, rowCount) {
if (err) {
console.log(err);
} else {
console.log(rowCount + ' rows');
}
connection.close();
});
request.on('row', function(columns) {
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
console.log(column.value);
}
});
});
request.on('done', function(rowCount, more) {
console.log(rowCount + ' rows returned');
});
// In SQL Server 2000 you may need: connection.execSqlBatch(request);
connection.execSql(request);
}
これが、依存関係としてTediousを持つnode-mssqlです。これを使用してください!
var sql = require('mssql');
var config = {
server: '192.168.1.212',
user: 'test',
password: 'test'
};
sql.connect(config, function(err) {
var request = new sql.Request();
request.query("select 42, 'hello world'", function(err, recordset) {
console.log(recordset);
});
});