connection.on('connect', function(err) { if (err) { console.log(err); } else { console.log('Connected'); } });
function withConnection (t) { return new Promise((resolve, reject) => { const conn = new tedious.Connection(connection) t.on('end', () => { conn.close() }) conn.on('connect', (err) => { if (err) return reject(err) resolve(conn) }) }) }
/* POST create comment. */ router.post('/', function (req, res) { var connection = db.createConnection(); var request = db.createRequest("insert into Comments values (@author, @text)", connection); request.addParameter('author', TYPES.NVarChar, req.body.author); request.addParameter('text', TYPES.NVarChar, req.body.text); db.executeRequest(request, connection); });
tediousPromise.sql(qry) .parameter('username', TYPES.VarChar, data.username) .execute() .then(results => { if (results.length > 0) { return {error: null, data: results[0], exists: true}; } return {error: null, data: {}, exists: false}; }) .fail(err => { return {error: err, data: {}, exists: false}; })
test('execSql', (t) => { const sql = 'select 1' resetAgent(2, function (data) { assertBasicQuery(t, sql, data) t.end() }) withConnection(t).then((connection) => { agent.startTransaction('foo') const request = new tedious.Request(sql, (err, rowCount) => { t.error(err, 'no error') t.strictEqual(rowCount, 1, 'row count') agent.endTransaction() }) request.on('row', (columns) => { t.strictEqual(columns[0].value, 1, 'column value') }) connection.execSql(request) }, (err) => { t.error(err, 'no error') t.fail('unable to connect to mssql') }) })
UserData.GetUserData(data) .then(user => { if (user.error) { return {error: user.error, exists: false, success: false}; } if (user.exists === true) { return {error: null, exists: true, success: false}; } let hasedPassword = generateHash(data.password); let qry = "INSERT INTO users (username, password) OUTPUT INSERTED.Id VALUES (@username, @password)"; return tediousPromise.sql(qry) .parameter('username', TYPES.VarChar, data.username) .parameter('password', TYPES.VarChar, hasedPassword) .execute() .then(result => { return {error: null, data: result}; }) .fail(err => { return {error: err, data: {}}; }); })
/* GET single comment. */ router.get('/:id', function (req, res) { var conn = db.createConnection(); var request = db.createRequest("select * from comments where id = @id for json path, without_array_wrapper", conn); request.addParameter('id', TYPES.Int, req.params.id); db.stream(request, conn, res, '{}'); });
}); request.addParameter('aggregateId', TYPES.UniqueIdentifier, aggregateId); request.addParameter('fromRevision', TYPES.Int, fromRevision); request.addParameter('toRevision', TYPES.Int, toRevision);
}); request.once('row', columns => { resultRow = { state: JSON.parse(columns[0].value), }); request.addParameter('aggregateId', TYPES.UniqueIdentifier, aggregateId);
{ key: `aggregateId${rowId}`, value: event.aggregate.id, type: TYPES.UniqueIdentifier }, { key: `revision${rowId}`, value: event.metadata.revision, type: TYPES.Int }, { key: `event${rowId}`, value: JSON.stringify(event), type: TYPES.NVarChar, options: { length: 4000 }}, { key: `hasBeenPublished${rowId}`, value: event.metadata.published, type: TYPES.Bit } ]; request.removeListener('row', onRow); const value = values[i]; request.addParameter(value.key, value.type, value.value, value.options); }; request.on('row', onRow);
}); request.addParameter('aggregateId', TYPES.UniqueIdentifier, aggregateId); request.addParameter('fromRevision', TYPES.Int, fromRevision); request.addParameter('toRevision', TYPES.Int, toRevision);
}); request.addParameter('aggregateId', TYPES.UniqueIdentifier, aggregateId); request.addParameter('revision', TYPES.Int, revision); request.addParameter('state', TYPES.NVarChar, JSON.stringify(state), { length: 4000 });
agent.startTransaction('foo') const request = new tedious.Request(sql, (err, rowCount) => { t.error(err, 'no error') t.strictEqual(rowCount, 1, 'row count') agent.endTransaction() }) request.addParameter('value', tedious.TYPES.Int) request.on('row', (columns) => { t.strictEqual(columns[0].value, 42, 'column value') }) request.on('prepared', function () { connection.execute(request, { value: 42
}); request.once('row', columns => { resultEvent = Event.deserialize(JSON.parse(columns[0].value)); }); request.addParameter('aggregateId', TYPES.UniqueIdentifier, aggregateId);