UNPKG

tedious

Version:

A TDS driver, for connecting to MS SQLServer databases.

66 lines (58 loc) 1.75 kB
"use strict"; // s2.2.7.5/6/7 const STATUS = { MORE: 0x0001, ERROR: 0x0002, // This bit is not yet in use by SQL Server, so is not exposed in the returned token INXACT: 0x0004, COUNT: 0x0010, ATTN: 0x0020, SRVERROR: 0x0100 }; function parseToken(parser, options, callback) { parser.readUInt16LE(status => { const more = !!(status & STATUS.MORE); const sqlError = !!(status & STATUS.ERROR); const rowCountValid = !!(status & STATUS.COUNT); const attention = !!(status & STATUS.ATTN); const serverError = !!(status & STATUS.SRVERROR); parser.readUInt16LE(curCmd => { (options.tdsVersion < '7_2' ? parser.readUInt32LE : parser.readUInt64LE).call(parser, rowCount => { callback({ name: 'DONE', event: 'done', more: more, sqlError: sqlError, attention: attention, serverError: serverError, rowCount: rowCountValid ? rowCount : undefined, curCmd: curCmd }); }); }); }); } module.exports.doneParser = doneParser; function doneParser(parser, colMetadata, options, callback) { parseToken(parser, options, token => { token.name = 'DONE'; token.event = 'done'; callback(token); }); } module.exports.doneInProcParser = doneInProcParser; function doneInProcParser(parser, colMetadata, options, callback) { parseToken(parser, options, token => { token.name = 'DONEINPROC'; token.event = 'doneInProc'; callback(token); }); } module.exports.doneProcParser = doneProcParser; function doneProcParser(parser, colMetadata, options, callback) { parseToken(parser, options, token => { token.name = 'DONEPROC'; token.event = 'doneProc'; callback(token); }); }