JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q62271F
  • License MIT

A simple node wrapper for the wonderful Tedious driver.

Package Exports

  • node-sql

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-sql) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-sql

A simple node-style callback wrapper for the wonderful Tedious driver.

Just call the exec function with a query, or sproc with a stored procedure, and get back an Array of JSON objects. Query in, JSON out.

exec(query, config, callback) Execute arbitrary SQL

query: String - standard SQL query e.g. 'Select * From tbl'.

config: Object - standard tedious config object.

callback: Function - standard node callback, returns (err, result). Where err = Error, and result = the query results.

var nodeSQL = require('node-sql')
//standard tedious config object : http://tediousjs.github.io/tedious/api-connection.html#function_newConnection
var config = {
  userName: process.env.USERNAME,
  password: process.env.PASSWORD,
  server: 'MyServer',
  domain: 'DOMAIN'
}
//result has data as an Array of JSON objects with column name => column value
app.get('/', function (req, res) {
  nodeSQL.exec(`Select FirstName, LastName From tbl Where FirstName='Moshe'`, config, function(err, result){
    if(err) return res.sendStatus(500);
    res.status(200).json(result);// [{FirstName: 'Moshe', LastName: 'Karmel'}]
  });
})

sproc(name, params, config, callback) Call a stored procedure

name: String - stored procedure name e.g. MyDB.dbo.GetDataById.

params: Object - Key Value pairs of parameter name to parameter value, e.g. { ID : 4 } (the type is inferred).

config: Object - standard tedious config object.

callback: Function - standard node callback, returns (err, result). Where err = Error, and result = the query results.

var nodeSQL = require('node-sql')
//standard tedious config object : http://tediousjs.github.io/tedious/api-connection.html#function_newConnection
var config = {
  userName: process.env.USERNAME,
  password: process.env.PASSWORD,
  server: 'MyServer',
  domain: 'DOMAIN'
}
//result has data as an Array of JSON objects with column name => column value
app.get('/:Id', function (req, res) {
  var params = { ID: req.params.Id };
  nodeSQL.sproc(`MyDB.dbo.GetDataById`, params, config, function(err, result){
    if(err) return res.sendStatus(500);
    res.status(200).json(result);// [{FirstName: 'Moshe', LastName: 'Karmel'}]
  });
})

tvp(name, params, config, callback) Call a table-value parameter sproc

name: String - stored procedure name e.g. MyDB.dbo.GetDataById.

paramName: String - Name of the Table-Value Parameter, e.g. Todos.

table: Array of Objects - Follow the pattern here tedious tvp object.

config: Object - standard tedious config object.

callback: Function - standard node callback, returns (err, result). Where err = Error, and result = the query results.

var nodeSQL = require('node-sql')
//standard tedious config object : http://tediousjs.github.io/tedious/api-connection.html#function_newConnection
var config = {
  userName: process.env.USERNAME,
  password: process.env.PASSWORD,
  server: 'MyServer',
  domain: 'DOMAIN'
}
//result has data as an Array of JSON objects with column name => column value
app.post('/:Id', function (req, res) {
  var body = req.body;
  var rows = [];
  // use the index to match the metadata in the table variable
  rows.push(body.Id, body.Text, etc.. );

  var table = {
    columns: [
      {name: 'Id', type: nodeSQL.TYPES.BigInt},
      {name: 'Text', type: nodeSQL.TYPES.VarChar, length: 13},
      ...
    ],
    rows: rows
  };

  nodeSQL.sproc(`MyDB.dbo.SaveTVPRows`, 'Stuff', table, config, function(err, result){
    if(err) return res.sendStatus(500);
    res.status(200).json(result);// [{Id: 1, Text: 'Hello'}, {Id: 2, Text: 'World'}]
  });
})

getColumnNames(query, config, callback) Get SQL column names

query: String - standard SQL query e.g. 'Select * From tbl'.

config: Object - standard tedious config object.

callback: Function - standard node callback, returns (err, result). Where err = Error, and result = the query results.

var nodeSQL = require('node-sql')
//standard tedious config object : http://tediousjs.github.io/tedious/api-connection.html#function_newConnection
var config = {
  userName: process.env.USERNAME,
  password: process.env.PASSWORD,
  server: 'MyServer',
  domain: 'DOMAIN'
}
//result has data as an Array of column names
app.get('/', function (req, res) {
  nodeSQL.exec(`Select TOP 1 * From tbl Where FirstName='Moshe'`, config, function(err, result){
    if(err) return res.sendStatus(500);
    res.status(200).json(result);// ['FirstName', 'LastName', etc...]
  });
})

Installation

$ npm install node-sql --save

License

MIT