UNPKG

ckn.data

Version:

75 lines (69 loc) 2.57 kB
import { DataConnector } from "./connector.js"; const tedious = await import('tedious'); class SQLServerConnector extends DataConnector { constructor() { super(); } query = async (query) => { return await new Promise(onCompleted => { var Connection = tedious.Connection; var config = { server: this.host, //update me authentication: { type: 'default', options: { userName: this.user, //update me password: this.password //update me } }, options: { // If you are on Microsoft Azure, you need encryption: encrypt: true, database: this.database //update me } }; var connection = new Connection(config); connection.on('connect', function (err) { // If no error, then good to proceed. console.log("Connected"); executeStatement(); }); connection.connect(); var Request = require('tedious').Request; var TYPES = require('tedious').TYPES; function executeStatement() { console.log("CKN.DATABASE.QUERY> " + query); request = new Request(query, function (err) { if (err) { console.log(err); } }); var result = []; request.on('row', function (columns) { var row = {}; columns.forEach(function (column) { row[column.metadata.colName] = column.value; }); result.push(row); }); // Close the connection after the final event emitted by the request, after the callback passes request.on("requestCompleted", function (rowCount, more) { onCompleted(result); connection.close(); }); connection.execSql(request); } }); } insert = async (tableName, objs) => { return await new Promise(onCompleted => { onCompleted(null); }); } update = async (tableName, objs, condition) => { return await new Promise(onCompleted => { onCompleted(null); }); } } export { SQLServerConnector }