ckn.data
Version:
75 lines (69 loc) • 2.57 kB
JavaScript
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 }