Oryginalne pytanie jest stare i teraz użycie node-mssql, na które odpowiedział @Patrik Šimek, które otacza Tedious, jak odpowiedział @Tracker1, jest najlepszym sposobem.
Sterownik Windows/Azure node-sqlserver, jak wspomniano w zaakceptowanej odpowiedzi, wymaga zainstalowania szalonej listy wymagań wstępnych:Visual C++ 2010, SQL Server Native Client 11.0, Python 2.7.x i prawdopodobnie także Windows 7 SDK dla 64-bit na twoim serwer. Nie chcesz instalować wszystkich tych GB oprogramowania na swoim Windows Server, jeśli mnie o to poprosisz.
Naprawdę chcesz używać Tediousa. Ale również użyj node-mssql, aby go zawinąć i znacznie ułatwić kodowanie.
Aktualizacja sierpień 2014
- Oba moduły są nadal aktywnie utrzymywane. Problemy są rozwiązywane dość szybko i skutecznie.
- Oba moduły obsługują SQL Server 2000-2014
- Transmisja strumieniowa obsługiwana od node-mssql 1.0.1
Aktualizacja z lutego 2015 r. – 2.x (stabilny, npm)
- Zaktualizowano do najnowszej wersji Tedious 1.10
- Obietnice
- Żądanie potoku do strumienia obiektów
- Szczegółowe błędy SQL
- Obsługa przerwania transakcji
- Zintegrowane kontrole typu
- CLI
- Drobne poprawki
To jest po prostu nudne:
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);
}
Tutaj pojawia się node-mssql, który ma Tedious jako zależność. Użyj tego!
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);
});
});