Skip to content

A MS SQL Server interface layer for common requests

License

Notifications You must be signed in to change notification settings

sangkisuke/mssql-cr-layer

 
 

Repository files navigation

mssql-cr-layer NPM version Dependency Status CircleCI Coverage Status

A MS SQL Server interface layer for common requests. It uses mssql to connect and wraps it in a tiny layer using ES2015 promises with the goal to be simpler and compatible with pg via pg-cr-layer

Install

$ npm install --save mssql-cr-layer

Usage

var mssqlCrLayer = require('mssql-cr-layer');

var config = {
  user: 'me',
  password: 'my password',
  host: 'localhost',
  port: 1433,
  pool: {
    max: 25,
    idleTimeout: 30000
  }
};

var layer = new MssqlCrLayer(config)

layer.connect()
  .then(function() {
    return layer.execute('CREATE TABLE products ( ' +
      'product_no integer, ' +
      'name varchar(10), ' +
      'price numeric(12,2) )');
  })
  .then(function() {
    return layer.transaction(function(t) {
      return layer
	      .execute('INSERT INTO products VALUES (1, \'Cheese\', 9.99)', null, {transaction: t})
          .then(function() {
            return layer.execute('INSERT INTO products VALUES (2, \'Chicken\', 19.99)', null, {transaction: t})
          })
		  .then(function() {
        return layer
          .execute('INSERT INTO products VALUES ($1, $2, $3)', [3, 'Duck', 0.99], {transaction: t})
       });
     })
  })
  .then(function() {
    return layer.query('SELECT * FROM products WHERE product_no=@product_no',
      {product_no: {value: 1, type: 'integer'}}) // or just {product_no: 1}
    .then(function(recordset) {
      console.log(recordset[0]); // => { product_no: 1, name: 'Cheese', price: 9.99 }
    })
  })
  .then(function() {
    return layer.close();
  })
  .catch(function(error) {
	  console.log(error);
  });

License

MIT © Andre Gloria

About

A MS SQL Server interface layer for common requests

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%