Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Node.js et Microsoft SQL Server

La question d'origine est ancienne et maintenant utiliser node-mssql comme répondu par @Patrik Šimek qui encapsule Tedious comme répondu par @Tracker1 est la meilleure façon de procéder.

Le pilote Windows/Azure node-sqlserver tel que mentionné dans la réponse acceptée vous oblige à installer une liste folle de prérequis :Visual C++ 2010, SQL Server Native Client 11.0, python 2.7.x et probablement aussi Windows 7 SDK pour 64 bits sur votre serveur. Vous ne voulez pas installer tous ces Go de logiciels sur votre serveur Windows si vous me le demandez.

Vous voulez vraiment utiliser Tedious. Mais aussi utilisez node-mssql pour l'envelopper et faciliter le codage.

Mise à jour août 2014

  • Les deux modules sont toujours activement maintenus. Les problèmes sont traités assez rapidement et efficacement.
  • Les deux modules prennent en charge SQL Server 2000 - 2014
  • Streaming pris en charge depuis node-mssql 1.0.1

Mise à jour février 2015 - 2.x (stable, npm)

  • Mise à jour vers la dernière version 1.10 de Tedious
  • Des promesses
  • Transmettre la requête au flux d'objets
  • Erreurs SQL détaillées
  • Gestion des abandons de transaction
  • Vérifications de type intégrées
  • CLI
  • Corrections mineures

C'est tout simplement fastidieux :

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

Voici node-mssql qui a Tedious comme dépendance. Utilisez ceci !

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