333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"use strict";
 
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);
  });
}