Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Node.js i Microsoft SQL Server

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Poprawki związane z wydajnością dla SQL Server 2012

  2. Jak bezpośrednio wykonać zapytanie SQL w C#?

  3. Zamiast wyzwalacza w SQL Server traci SCOPE_IDENTITY?

  4. Jak mogę określić w SQL Server, czy zakres dat i godzin nakłada się na inny?

  5. Jak zwrócić liczbę wierszy w wyniku zapytania w SQL Server