Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Node.js e Microsoft SQL Server

La domanda originale è vecchia e ora usare node-mssql come ha risposto @Patrik Šimek che avvolge Tedious come ha risposto @Tracker1 è il modo migliore per andare.

Il driver Windows/Azure node-sqlserver, come menzionato nella risposta accettata, richiede l'installazione di un folle elenco di prerequisiti:Visual C++ 2010, SQL Server Native Client 11.0, python 2.7.x e probabilmente anche Windows 7 SDK per 64 bit sul tuo server. Non vuoi installare tutti questi GB di software sul tuo Windows Server se me lo chiedi.

Vuoi davvero usare noioso. Ma anche usa node-mssql per avvolgerlo e rendere la codifica molto più semplice.

Aggiornamento agosto 2014

  • Entrambi i moduli sono ancora attivamente mantenuti. I problemi vengono risolti in modo abbastanza rapido ed efficiente.
  • Entrambi i moduli supportano SQL Server 2000 - 2014
  • Streaming supportato da node-mssql 1.0.1

Aggiornamento febbraio 2015 - 2.x (stabile, npm)

  • Aggiornato all'ultima versione di Tedious 1.10
  • Promesse
  • Inviare la richiesta al flusso di oggetti
  • Errori SQL dettagliati
  • Gestione interruzione transazione
  • Verifiche di tipo integrate
  • CLI
  • Piccole correzioni

Questo è semplicemente noioso:

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

Ecco che arriva node-mssql che ha Tedious come dipendenza. Usa questo!

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