Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Node.js und Microsoft SQL Server

Die ursprüngliche Frage ist alt und jetzt ist die Verwendung von node-mssql, wie von @Patrik Šimek beantwortet, das Tedious umschließt, wie von @Tracker1 beantwortet, der beste Weg.

Der in der akzeptierten Antwort erwähnte Windows/Azure-Knoten-SQLServer-Treiber erfordert die Installation einer verrückten Liste von Voraussetzungen:Visual C++ 2010, SQL Server Native Client 11.0, Python 2.7.x und wahrscheinlich auch Windows 7 SDK für 64-Bit auf Ihrem Server. Wenn Sie mich fragen, möchten Sie nicht all diese GB an Software auf Ihrem Windows-Server installieren.

Sie möchten wirklich Tedious verwenden. Aber auch Verwenden Sie node-mssql, um es zu umschließen und das Codieren viel einfacher zu machen.

Aktualisierung August 2014

  • Beide Module werden weiterhin aktiv gepflegt. Auf Probleme wird recht schnell und effizient reagiert.
  • Beide Module unterstützen SQL Server 2000 - 2014
  • Streaming wird seit node-mssql 1.0.1 unterstützt

Aktualisierung Februar 2015 – 2.x (stabil, npm)

  • Aktualisiert auf das neueste Tedious 1.10
  • Versprechen
  • Anfrage an Objektstrom weiterleiten
  • Detaillierte SQL-Fehler
  • Behandlung von Transaktionsabbrüchen
  • Integrierte Typprüfungen
  • CLI
  • Kleinere Korrekturen

Das ist einfach mühsam:

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);
}

Hier kommt node-mssql, das Tedious als Abhängigkeit hat. Verwenden Sie dies!

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);
    });
});