sql >> Base de Datos >  >> RDS >> Sqlserver

Node.js y Microsoft SQL Server

La pregunta original es antigua y ahora usar node-mssql como respondió @Patrik Šimek que envuelve a Tedious como respondió @Tracker1 es la mejor manera de hacerlo.

El controlador Windows/Azure node-sqlserver, como se menciona en la respuesta aceptada, requiere que instale una loca lista de requisitos previos:Visual C++ 2010, SQL Server Native Client 11.0, python 2.7.x y probablemente también Windows 7 SDK para 64 bits en su servidor. Si me lo pide, no querrá instalar todos estos GB de software en su Windows Server.

Realmente quieres usar Tedious. Pero también use node-mssql para envolverlo y hacer que la codificación sea mucho más fácil.

Actualización de agosto de 2014

  • Ambos módulos todavía se mantienen activamente. Los problemas se responden con bastante rapidez y eficacia.
  • Ambos módulos son compatibles con SQL Server 2000 - 2014
  • Transmisión admitida desde node-mssql 1.0.1

Actualización de febrero de 2015 - 2.x (estable, npm)

  • Actualizado a la última versión de Tedious 1.10
  • Promesas
  • Transferir solicitud a flujo de objetos
  • Errores SQL detallados
  • Manejo de anulación de transacciones
  • Comprobaciones de tipos integradas
  • CLI
  • Correcciones menores

Esto es simplemente tedioso:

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

Aquí viene node-mssql que tiene Tedious como dependencia. ¡Usa esto!

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