tedious
Version:
A TDS driver, for connecting to MS SQLServer databases.
50 lines (45 loc) • 1.38 kB
JavaScript
function parseToken(parser, options, callback) {
// length
parser.readUInt16LE(() => {
parser.readUInt32LE(number => {
parser.readUInt8(state => {
parser.readUInt8(clazz => {
parser.readUsVarChar(message => {
parser.readBVarChar(serverName => {
parser.readBVarChar(procName => {
(options.tdsVersion < '7_2' ? parser.readUInt16LE : parser.readUInt32LE).call(parser, lineNumber => {
callback({
'number': number,
'state': state,
'class': clazz,
'message': message,
'serverName': serverName,
'procName': procName,
'lineNumber': lineNumber
});
});
});
});
});
});
});
});
});
}
module.exports.infoParser = infoParser;
function infoParser(parser, colMetadata, options, callback) {
parseToken(parser, options, token => {
token.name = 'INFO';
token.event = 'infoMessage';
callback(token);
});
}
module.exports.errorParser = errorParser;
function errorParser(parser, colMetadata, options, callback) {
parseToken(parser, options, token => {
token.name = 'ERROR';
token.event = 'errorMessage';
callback(token);
});
}
;